Skip to main content

AccessTr.neT


Message box'ta girilen veriyle düzenleme

Message box'ta girilen veriyle düzenleme

#7
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.
Cevapla
#8
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.
Cevapla
#9
söylediğinizi tam kavrayamadımImg-cray
Cevapla
#10
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 
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
Cevapla
#11
şimdi oldu.. çok teşekkürler.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task