Skip to main content

AccessTr.neT


iptal butonu

iptal butonu

Çözüldü #2
Anladığım kadarıyla bahsettiğiniz kodlar şunlar:
Kod:
If NewRecord = False Then
If MsgBox("Kayıtlarda değişiklik görüldü, değişiklik kaydedilsin mi?", vbInformation + vbYesNo, "Onay") = vbNo Then
DoCmd.RunCommand acCmdUndo

End If
End If

Burda iki seçenek var. Gelin önce bunların ne demek olduğuna ve ne yaptıklarına bir bakalım:

Evet: Değişikliği kaydetmesi için onay veririz.
Hayır: Değişikliği geri alır. Yapılan değişiklik onaylanmaz. Peki, onaylanmadığı zaman ne yapar? DoCmd.RunCommand acCmdUndo komutu en son yapılan değişiklikleri geri alır.

Sizin bahsettiğiniz ise 3 seçenekli. Siz 3 seçeneğin 3'ünde de farklı bir olay kullanmak istiyorsanız yapı tamamen değişmeli. Kodlama bilmiyorum diyorsunuz. Size bunu anlatmak çok zor olacak. Yine de bir deneyelim...

Sizin bahsettiğiniz yapı için gerekli olan yapı şu şekilde:

Kod:
Select Case MsgBox("Kayıtlarda değişiklik görüldü, değişiklik kaydedilsin mi?", vbYesNoCancel Or vbQuestion Or vbDefaultButton1, "Kaydedilsin mi?")

    Case vbYes
DoCmd.RunCommand acCmdSave
    Case vbNo
DoCmd.RunCommand acCmdUndo
    Case vbCancel
    ad.SetFocus
    Exit Sub
End Select

Select Case (Durum Seç) komutu bu şekilde kullanılır. 3 farklı durum olduğu için 3 ihtimalden seçime göre işlem yaptırmaya yarar.

Hemen bu arada bir noktayı özellikle hatırlatmakta fayda var: Sizin örnek verdiğiniz uygulama olan kaydet.zip dosyasındaki örnekte kapat butonunun olayında DoCmd.Close var. Yani formu kapatma olayı var. Form kapatılmadan önce ise Formun Güncelleştiğinde olayına yazılmış bu kodlar. Formu kapatmaya çalıştığınızda formda bir güncelleme varsa bu İletişim kutusu çıkıyor. Eğer siz de aynı yöntemi kullanıyorsanız bu sizin için doğru bir yöntem olmayacaktır. Çünkü bu kodlarda da evet ve hayır kullanılabilirken iptal için girdiğiniz kod kullanılamayacaktır. Çünkü form kapanmaktadır. Ben bu nedenle soyad alanının güncelleştirme sonrasında olayına yaptım bu kodları... Bu noktaya dikkat edin...

Şimdi 3 ihtimale tek tek bakalım:

vbYes: DoCmd.RunCommand acCmdSave diyerek kaydetmesini sağladık.
vbNo: DoCmd.RunCommand acCmdUndo diyerek geri almasını sağladık.
vbCancel: Güncellenen alandan bir önceki alan olan "ad" alanına ad.SetFocus diyerek odaklanmasını sağladık ve Exit Sub diyerek döngüden çıkmasını sağladık. Güncellenen alana odaklanamaz. Bunun için güncellenen alana değil, başka bir alana odaklandık.

Örnek olmadan anca bu kadar anlatabilirim. Siz bu anlattıklarım doğrultusunda yapmaya çalışın. Eğer yapamayacak olursanız da örneğinizi ekleyin. Örnek üzerinden anlatmaya çalışalım...

Kolay gelsin...
NZ Fonksiyonunun (İşlevinin) Ayrıntılı Anlatımı İçin Tıklayın...
DSum ve Sum Fonksiyonunun (İşlevinin) Ayrıntılı Anlatımı İçin Tıklayın...
DLookup Fonksiyonunun (İşlevinin) Ayrıntılı Anlatımı İçin Tıklayın...
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da

Bu Konudaki Yorumlar
iptal butonu - Yazar: RkNxSR - 20/04/2009, 01:38
Cvp: iptal butonu - Yazar: tdsharun - 20/04/2009, 09:26
Cvp: iptal butonu - Yazar: RkNxSR - 20/04/2009, 11:07
Cvp: iptal butonu - Yazar: tdsharun - 20/04/2009, 11:48
Cvp: iptal butonu - Yazar: RkNxSR - 20/04/2009, 12:09
Cvp: iptal butonu - Yazar: tdsharun - 20/04/2009, 12:53
Cvp: iptal butonu - Yazar: C*e*l*o*y*c*e - 20/04/2009, 13:58
Cvp: iptal butonu - Yazar: RkNxSR - 20/04/2009, 20:36