Skip to main content

AccessTr.neT


Kaydet/güncelle Butonunda Mükerrer Kayıt Engelleme

Kaydet/güncelle Butonunda Mükerrer Kayıt Engelleme

Çözüldü #1
Formda bulunan "yeni kayıt" ve Kaydet/güncelle" butonlarım var.
Kaydet/güncelle butonunda 4 alana göre mükerrer sorgulaması yapmak istiyorum. Dört alan eşitse mesaj versin ve kayıt gerçekleşmesin istyorum. Yapmaya çalıştım ama..

Kod:
Private Sub kmtkaydet_Click()
On Error GoTo Err_kaydıkaydet_Click

kural1 = DCount("ders_id", "tbl_dersler", "dersinadi='" & Me.txtdersadi & "'")
kural2 = DCount("ders_id", "tbl_dersler", "sinifi='" & Me.txtsinif & "'")
kural3 = DCount("ders_id", "tbl_dersler", "alan_id=" & Me.cbalan.Column(0))
kural4 = DCount("ders_id", "tbl_dersler", "dali=" & Me.cbdal.Column(0))
If kural1 >= 1 And kural2 >= 1 And kural3 >= 1 And kural4 >= 1 Then

MsgBox "Aynı alan ve dal ve sınıf için aynı isimle ders eklidir.Lütfen kontrol ediniz.", vbCritical + vbOKOnly, "Ders Ekleme"
Me.txtdersadi.Undo
Else
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
     DoCmd.SetWarnings False
     DoCmd.OpenQuery "srg_guncelle"
        DoCmd.SetWarnings True
    Me.listedersler.Requery
Exit_kaydıkaydet_Click:
    Exit Sub
Err_kaydıkaydet_Click:
    MsgBox Err.Description
    Resume Exit_kaydıkaydet_Click
    End If
Me.listedersler.Requery
End Sub

Cevapla
#2
bu 4 koşulu da aynı anda sağlayan kayıt sayısını bulmak istiyorsanız 4 kriteri tek dcount() içinde kullanmalısınız, bu haliyle her koşul ayrı değerlendiriliyor
DCount("ders_id", "tbl_dersler", "dersinadi='" & Me.txtdersadi & "' and sinifi='" & Me.txtsinif & "' and alan_id=" & Me.cbalan.Column(0) & " and dali=" & Me.cbdal.Column(0))
Cevapla
#3
Teşekkür ederim. Kod dizilimi doğrumu peki. Kodların satır sıralaması.

Private Sub kmtkaydet_Click()
On Error GoTo Err_kaydıkaydet_Click
If DCount("ders_id", "tbl_dersler", "dersinadi='" & Me.txtdersadi & "' and sinifi='" & Me.txtsinif & "' and alan_id=" & Me.cbalan.Column(0) & " and dali=" & Me.cbdal.Column(0)) >= 1 Then
MsgBox "Bu alanda ve sınıfıta, bu ders eklenmiştir.Lütfen kontrol ediniz.", vbCritical + vbOKOnly, "Ders Ekleme"
Me.txtdersadi.Undo
Else
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
DoCmd.SetWarnings False
DoCmd.OpenQuery "srg_guncelle"
DoCmd.SetWarnings True
Me.listedersler.Requery
Exit_kaydıkaydet_Click:
Exit Sub
Err_kaydıkaydet_Click:
MsgBox Err.Description
Resume Exit_kaydıkaydet_Click
End If
Me.listedersler.Requery
End Sub
Son Düzenleme: 05/07/2021, 11:10, Düzenleyen: SeferŞANLI.
Cevapla
#4
düzgün çalışıp çalışmadığını aslında sizin kontrol etmeniz daha doğru; bu haliyle doğru gibi geliyor.
Cevapla
#5
Tamamdır. 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