Veri Değişikliğinde MsgBox Bilgisi

1 2
27/04/2013, 23:10

kaleci

Merhaba arkadaslar,

asagidaki kodu calistirdigim zaman;
„Veriyi degistirmek istiyormusunuz diye soruyor“ evet dedigimde, veri degistiriliyor.
Veri degistirildikten sonra > „veriniz degistirildi“ diye tekrar bilgi geliyor. Buraya kadar hersey güzel.

Veriyi degistirmekten vazgecip HAYIR dedigimde, veri degistirilmedigi halde „veriniz degistirildi“ diye bilgi geliyor.
Aslinda veriyi degistirip EVET dedigim zaman „veriniz degistirildi“ bilgisinin gelmesi,
veriyi degistirmekten vazgecip HAYIR dedigim zaman da „veriniz degistirilmedi“ bilgisinin gelmesi lazim.

Bunu nasil ayarlayabiliriz.

Private Sub cmdDegistir_Click()
On Error GoTo ErrorHandler
If MsgBox("Degisiklik kaydedilsin mi?", vbYesNo, "DEGISIKLIK?") = vbNo Then
Me.Undo 'rückgängig
'Cancel = True 'Ereignisse verhindern (Ruft Bug hervor)
End If
Forms![frmKfz].Refresh
Forms![frmKfz].Requery
MsgBox "Degisiklik kaydedildi.", vbOKOnly, "DEGISTIRILDI"
Exit Sub
ErrorHandler:
MsgBox "Fehler in Sub! Form_FormMain >> Form_BeforeUpdate" & vbCrLf & "Aktion wird abgebrochen"
End Sub
Saygilarimla
kaleci
27/04/2013, 23:31

mehmetdemiral

Sizin kodlara göre her durumda "veriniz değişti" uyarısı alınır. Bu bilgiyi end if arasında halletmelisiniz. Mantık şöyle olmalı:

Diyelim bir end if bloğu var. Bu blok içinde "eğer kayıt değişirse " kayıt değişti" diye bilgi ver, değişmediyse "kayıt değişmedi" diye bilgi ver demelisiniz. Bu işlem

if kayıt değiştime kodları
bilgi veren msgbox
değilse (else) komutu
bilgi değiştirmemek için undo komutu
bilgi veren msgbox
end if (if sonu)

Oysa siz if bittikten sonra msgbox satırı koymuşsunuz.
27/04/2013, 23:46

kaleci

Sayin mehmetdemiral,

Cok güzel ögretici bilgiler verdiginiz icin tesekkür ederim. Bu bilgileri istedigim gibi uygulayabilmem icin birazdaha zamana ihtiyacim var.

Saygilarimla
kaleci
28/04/2013, 00:19

kaleci

Hocam,

Balik yemegi degilde, tutturmayi ögrettigin icin tesekkür ederim.

Yol gösterdikten sonra yapmaya calistim ve oldu. Cok tesekkür ederim.

Private Sub cmdDegistir_Click()
On Error GoTo ErrorHandler
If MsgBox("Degisiklik kaydedilsin mi?", vbYesNo, "DEGISIKLIK?") = vbNo Then
Me.Undo 'rückgängig
'Cancel = True 'Ereignisse verhindern (Ruft Bug hervor)

MsgBox ("Kayit degistirilmedi."), vbOKOnly, "DEGISTIRILMEDI"
Else:
MsgBox "Kayit degistirildi.", vbOKOnly, "DEGISTIRILDI"
End If
Forms![frmKfz].Refresh
Forms![frmKfz].Requery
Exit Sub
ErrorHandler:
MsgBox "Fehler in Sub! Form_FormMain >> Form_BeforeUpdate" & vbCrLf & "Aktion wird abgebrochen"
End Sub

Saygilarimla
kaleci
28/04/2013, 01:14

mehmetdemiral

İşte budur. Ben zaten cevabı direkt olarak yazsaydım siz bu siteye hep "almak" için gelirdiniz. Artık öğrenmek için geleceksiniz değil mi?
28/04/2013, 01:30

kaleci

Hocam,

gercekten sifir Access bilgisiyle sitemize ilgi duymustum. Siz ve diger arkadaslarin ögretici ve yardimci olma uslubuyla, kendiminde inanamayacagi bir bilgiye ulastim. Sitemizde kendimi bir baligin kendisini denizde nasil hissediyorsa, bende kendimi aranizda böyle hissediyorum

Saygilarimla
kaleci
1 2