f5'e bastğınızda
stLinkCriteria = "[st_oto]=" & Me.Liste2
kodu ile f_topbol isimli formunu açtırıyorsunuz, yani bu form st_oto alanındaki veriye göre filtre ekliyor. Yani eklenen filtre formda no alanında yazan 25
bu yüzden, siz f_acılan formunu açtırıp işlem yaptırsanız bile 25 nolu kayda ait veri görünecek.
f_acılan formundaki metin0'ın güncelleştirme sonrasında olayındaki kodu aşağıdaki ile değiştirirsen, önceki kaydı ve yeni eklenen kaydı gösterir.
Dim ilkmetraj As Integer
Dim yenimetraj As Integer
Dim sonmetraj As Integer
ilkmetraj = Me.st_metraj.Value
yenimetraj = Me.Metin0.Value
sonmetraj = Me.st_metraj.Value - Me.Metin0.Value
If yenimetraj > ilkmetraj Or yenimetraj < 0 Then
MsgBox ("Bölünmek istenen top metrajından büyük bir değer girdiniz" & Chr(13) & "Kontrol Edip Tekrar Deneyiniz")
Me.Requery
Else
If MsgBox("Yeni top metrajının" & yenimetraj & Chr(13) & "Eski top metrajının " & sonmetraj & "olarak güncellenmesini istiyor musunuz?", vbOKCancel) = vbOK Then
Me.st_metraj = sonmetraj
Me.st_bilgi = Date & " Tarihinde bölündü"
DoCmd.RunSQL "INSERT INTO t_stokkayit ( st_urunadi, st_bilgi, st_metraj, st_giristar, st_girisirs, st_girisyeri) SELECT TOP 1 t_stokkayit.st_urunadi, Date() & ' Tarihinde oluşturuldu' AS bilgi, [Formlar]![f_acilan]![Metin0] AS yenimetraj, Date() as YeniTarih, st_girisirs, st_girisyeri FROM t_stokkayit WHERE (((t_stokkayit.st_urunadi)=[Formlar]![f_acilan]![st_urunadi]));"
Filtremiz = [Forms]![f_topbol].Filter
[Forms]![f_topbol].Filter = ""
[Forms]![f_topbol].Filter = Filtremiz & " or [st_oto]=" & DMax("st_oto", "t_stokkayit")
[Forms]![f_topbol].FilterOn = True
[Forms]![f_topbol].Requery
Forms!f_stoklar!Liste2.Requery
DoCmd.Close acForm, "f_acilan"
'buradan sonra eski kaydı çoğalt ve yeni kaydın metraj alanına metin0 değerini ata gibi bir kod yazmam lazım nasıl yapacağım çıkaramadım.'
End If
End If