AccessTr.neT
Açılan Kutusu Seçim Sorunu - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html)
+--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Açılan Kutusu Seçim Sorunu (/konu-acilan-kutusu-secim-sorunu.html)



Açılan Kutusu Seçim Sorunu - Merve D. - 02/05/2018

Merhaba,

Forumda yeniyim o yüzden hatam olursa affola.

Çalışmamı ekte gönderiyorum. Benim çalışmamla ilgili iki problemim var;

-Kaydet butonuna tıkladığım zaman 'Kayıtlar' formunda açılan kutular boş ise hata versin diye kod yazdım. Ancak hata vermeden direk kaydediyor. Forumda bununla ilgili bir çalışma bulamadım.

-Kayıt işlemi tamamlanmadan başka bir yere tıklarsam kaydı eksik haliyle kaydediyor. Ben sadece kaydet butonu ile kayıt yapılsın istiyorum. Bu konuda bazı çalışmalar var ancak ben kendime uyarlayabileceğim bir çalışma bulamadım. 

Şimdiden teşekkürler.


Cvp: Açılan Kutusu Seçim Sorunu - ozanakkaya - 02/05/2018

Merhaba, kod tasarımınız hatalı. Yapı olarak

Private Sub Kaydet_Click()

 If IsNull(Kayit_ID) Then
     MsgBox "Kayıt No Boş Kalamaz", vbInformation, "Kayıt No Boş!"
     Kayit_ID.SetFocus
     
     Exit Sub
     
     End If
     
     If IsNull(DepoGirisTarihi) Then
     MsgBox "Tarih Boş Kalamaz", vbInformation, "Tarih Boş!"
     DepoGirisTarihi.SetFocus
     
     Exit Sub
     
     End If
     
     If IsNull(Me.UrunCinsi) Or Me.UrunCinsi = "" Then
     MsgBox "Ürün Cinsi Boş Kalamaz", vbInformation, "Ürün Cinsi Boş!"
     UrunCinsi.SetFocus
     
     Exit Sub
     
     End If
     
     If Me.Ebat = "" Then
     MsgBox "Ebat Boş Kalamaz", vbInformation, "Ebat Cinsi Boş!"
     Ebat.SetFocus
     
     Exit Sub
     
     End If
     
     If DepoGirisTarihi < Date Then
     MsgBox " Eski bir tarih için kayıt girilemez!", vbInformation, "Geçmiş Tarih!"
     DepoGirisTarihi.SetFocus
     
     Exit Sub
     
     End If
    
    If DepoCikisTarihi < DepoGirisTarihi Then
    MsgBox "Depo Çıkış Tarihi Depo Giriş Tarihinden Önce Olamaz", vbInformation, "Hatalı Tarih!"
    DepoCikisTarihi.SetFocus
    
    Exit Sub
    
    End If


If MsgBox("Değişiklikler kaydedilsin mi?", vbCritical + vbYesNo + vbDefaultButton1, "UYARI!") = vbYes Then


    DoCmd.GoToRecord , , acNewRec
    
    Me.KayitListesi.Requery
    
Else
    Me.Undo
End If


End Sub


Şeklinde olmalı ki siz kaydedilsin mi sorusuna cevap vermeden önce alanların denetimini yapsın.


Kayıt sorunu ile ilgili olarak,

Formun güncelleştirme sonrasında olayına

If Me.Dirty Then
   If MsgBox("Kayıt verisinde değişiklik yapıldı.Kaydetmek ister misiniz?", vbYesNo + vbQuestion, "Değişikliği KAYDET") = vbNo Then
         Me.Undo
   End If
End If

kodu ekleyerek deneyiniz.


Cvp: Açılan Kutusu Seçim Sorunu - Merve D. - 02/05/2018

(02/05/2018, 14:07)ozanakkaya yazdı: Merhaba, kod tasarımınız hatalı. Yapı olarak

Private Sub Kaydet_Click()

 If IsNull(Kayit_ID) Then
     MsgBox "Kayıt No Boş Kalamaz", vbInformation, "Kayıt No Boş!"
     Kayit_ID.SetFocus
     
     Exit Sub
     
     End If
     
     If IsNull(DepoGirisTarihi) Then
     MsgBox "Tarih Boş Kalamaz", vbInformation, "Tarih Boş!"
     DepoGirisTarihi.SetFocus
     
     Exit Sub
     
     End If
     
     If IsNull(Me.UrunCinsi) Or Me.UrunCinsi = "" Then
     MsgBox "Ürün Cinsi Boş Kalamaz", vbInformation, "Ürün Cinsi Boş!"
     UrunCinsi.SetFocus
     
     Exit Sub
     
     End If
     
     If Me.Ebat = "" Then
     MsgBox "Ebat Boş Kalamaz", vbInformation, "Ebat Cinsi Boş!"
     Ebat.SetFocus
     
     Exit Sub
     
     End If
     
     If DepoGirisTarihi < Date Then
     MsgBox " Eski bir tarih için kayıt girilemez!", vbInformation, "Geçmiş Tarih!"
     DepoGirisTarihi.SetFocus
     
     Exit Sub
     
     End If
    
    If DepoCikisTarihi < DepoGirisTarihi Then
    MsgBox "Depo Çıkış Tarihi Depo Giriş Tarihinden Önce Olamaz", vbInformation, "Hatalı Tarih!"
    DepoCikisTarihi.SetFocus
    
    Exit Sub
    
    End If


If MsgBox("Değişiklikler kaydedilsin mi?", vbCritical + vbYesNo + vbDefaultButton1, "UYARI!") = vbYes Then


    DoCmd.GoToRecord , , acNewRec
    
    Me.KayitListesi.Requery
    
Else
    Me.Undo
End If


End Sub


Şeklinde olmalı ki siz kaydedilsin mi sorusuna cevap vermeden önce alanların denetimini yapsın.


Kayıt sorunu ile ilgili olarak,

Formun güncelleştirme sonrasında olayına

If Me.Dirty Then
   If MsgBox("Kayıt verisinde değişiklik yapıldı.Kaydetmek ister misiniz?", vbYesNo + vbQuestion, "Değişikliği KAYDET") = vbNo Then
         Me.Undo
   End If
End If

kodu ekleyerek deneyiniz.

Öncelikle teşekkür ederim ilk problemimi verdiğiniz düzenleme ile hallettim. 
Ancak kaydetme konusunda hala sıkıntım var. 
Örneğin; herhangi bir kayda girip değişiklik yaptıktan sonra; direk başka bir kayda tıkladığımda yapılan değişiklik kaydediliyor. Ben ne olursa olsun kayıttan çıkarken bana kayıt işlemini sorsun istiyorum. 

Yardımcı olursanız çok sevinirim.


Cvp: Açılan Kutusu Seçim Sorunu - ozanakkaya - 02/05/2018

Merhaba, önceki mesajımda verdiğim kodu uygulamaya ekledim. Kayıt değiştirince uyarı veriyor.


Cvp: Açılan Kutusu Seçim Sorunu - Merve D. - 02/05/2018

Sorunlarım çözüldü.

Teşekkür Ederim.