ellerinize sağlık Ozan Bey,
bir kaç düzenlemeyle tam istediğim şekilde çalıştı.
Tek bir sorun yeni eklenen kaydı, liste kutusunda ilk anda göstermiyor.
Forms!f_stoklar!Liste2.Requery kodu da bulunuyor ama neden değişen kaydı gösterirken, yeni eklenen kaydı göstermiyor anlamadım.
Message box'ta girilen veriyle düzenleme
Yeni eklenen kaydı göstermemesi normal. Form sıra numarasına göre açılıyor. Yeni eklenen kaydın numarası farklı.
Tabloya 2. numara alanı eklenip bölünen kayda ait numarayı yeni oluşturulan kayda ekletilebilir. Böylece hangi kaydın hangisinden bölündüğü belli olur. Formu bu numaraya göre açtırırsanız (kriter) yeni eklenen kaydı da görebilirsiniz.
Tabloya 2. numara alanı eklenip bölünen kayda ait numarayı yeni oluşturulan kayda ekletilebilir. Böylece hangi kaydın hangisinden bölündüğü belli olur. Formu bu numaraya göre açtırırsanız (kriter) yeni eklenen kaydı da görebilirsiniz.
söylediğinizi tam kavrayamadım
F_stoklar isimli formu açtınız, her iki liste kutusundaki 1. veriyi seçtiniz ve f5'e basarak f_topbol isimli formu açtırdığınız.
f5'e bastğınızda
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.
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
şimdi oldu.. çok teşekkürler.
Konuyu Okuyanlar: 1 Ziyaretçi