Skip to main content

AccessTr.neT


Açılan Kutusu Seçim Sorunu

Açılan Kutusu Seçim Sorunu

Çözüldü #1
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.
.rar MamulDepoTakip.rar (Dosya Boyutu: 79,99 KB | İndirme Sayısı: 3)
Cevapla
#2
Merhaba, kod tasarımınız hatalı. Yapı olarak

Visual Basic Code
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

Visual Basic Code
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.
Cevapla
#3
(02/05/2018 14:07)ozanakkaya Adlı Kullanıcıdan Alıntı: Merhaba, kod tasarımınız hatalı. Yapı olarak

Visual Basic Code
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

Visual Basic Code
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.
Cevapla
#4
Merhaba, önceki mesajımda verdiğim kodu uygulamaya ekledim. Kayıt değiştirince uyarı veriyor.
.rar MamulDepoTakip_sld.rar (Dosya Boyutu: 80,33 KB | İndirme Sayısı: 7)
Cevapla
#5
Sorunlarım çözüldü.

Teşekkür Ederim.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da