iyi aksamlar arkadaşlar,
ekteki çalışmamdaki formumda mükerrer kayıtları engellemek istiyorum. forumda benzer konular üzerindeki kodları uygulamaya çalıştım ama devamlı sorun verdi. öğrencinin bilgilerini süzerek mükerrer kayıtların öğrenci bilgileri üzerinden kontrol edilmesini istiyorum. veli bilgileri aynı olabilir lakin öğrenci bilgileri olamaz şeklinde kayıt yaptırmak istiyorum.
Merhaba,
tabloda Ogrencinin_Adi_Soyadi alanı birincil anahtar olmaz, birincil anahtar S/N alanı olmalıdır.
Kaydet butonunun tıklandığında olayındaki kodu aşağıdaki ile değiştirerek deneyiniz.
Dim Key_Adet As Integer
Dim kriter
kriter = Me.Ogrencinin_Adi_Soyadi & Me.Ogrencinin_Okul_Numarasi & Me.Ogrencinin_Cep_Telefonu_Numarasi
Key_Adet = DCount("*", "Ana_Tablo", "Ogrencinin_Adi_Soyadi&Ogrencinin_Okul_Numarasi&Ogrencinin_Cep_Telefonu_Numarasi='" & kriter & "'")
If Key_Adet > 0 Then
MsgBox "Dikkat..! Bu öğrenci bilgilerine sahip bir kayıt zaten var olduğundan tekrar kaydedemezsiniz."
Me.Undo
Exit Sub
End If
'*******KAYDET**********
DoCmd.RunCommand acCmdSaveRecord
'******YENI KAYIT********
DoCmd.GoToRecord , , acNewRec
Ayrıca, aynı veriyi girdikten sonra uyarı verdirip Me.Undo kodu ile eski haline getirirseniz aynı verileri tekrar yazmak zorunda kalırsınız.
Me.Undo yerine
Ogrencinin_Adi_Soyadi.setfocus
kodlarını ekleyerek uyarı sonrası düzeltme yapılabilmesi için öğrenci adı soyadı alanına odaklanılmasını sağlayabilirsiniz.
(03/01/2018, 14:33)ozanakkaya yazdı: [ -> ]Merhaba,
tabloda Ogrencinin_Adi_Soyadi alanı birincil anahtar olmaz, birincil anahtar S/N alanı olmalıdır.
Kaydet butonunun tıklandığında olayındaki kodu aşağıdaki ile değiştirerek deneyiniz.
Dim Key_Adet As Integer
Dim kriter
kriter = Me.Ogrencinin_Adi_Soyadi & Me.Ogrencinin_Okul_Numarasi & Me.Ogrencinin_Cep_Telefonu_Numarasi
Key_Adet = DCount("*", "Ana_Tablo", "Ogrencinin_Adi_Soyadi&Ogrencinin_Okul_Numarasi&Ogrencinin_Cep_Telefonu_Numarasi='" & kriter & "'")
If Key_Adet > 0 Then
MsgBox "Dikkat..! Bu öğrenci bilgilerine sahip bir kayıt zaten var olduğundan tekrar kaydedemezsiniz."
Me.Undo
Exit Sub
End If
'*******KAYDET**********
DoCmd.RunCommand acCmdSaveRecord
'******YENI KAYIT********
DoCmd.GoToRecord , , acNewRec
Ayrıca, aynı veriyi girdikten sonra uyarı verdirip Me.Undo kodu ile eski haline getirirseniz aynı verileri tekrar yazmak zorunda kalırsınız.
Me.Undo yerine
Ogrencinin_Adi_Soyadi.setfocus
kodlarını ekleyerek uyarı sonrası düzeltme yapılabilmesi için öğrenci adı soyadı alanına odaklanılmasını sağlayabilirsiniz.
Sayın Ozan,
teşekkür ederim kodunuz çalışıyor ve mükerrer kayıt olarak uyarıyı veriyor. sonrasında sizin de dediğiniz gibi formu boşaltıyor. bunun içinde dediginiz kodu me.undo yerine koydum bu seferde VBA'da hata veriyor kabul etmiyor.
Sayın Ozan olay çözülmüştür. programsal hatadan kaynaklanıyor du. sizin me.undo yerine vermiş olduğunuz kod çalışıyor, ilginize teşekkürler.