Öncelikle Araçlar/Seçenekler tıkla ve açılan pencerede Düzen/Bul sekmesindeki Onayla çerçevesindeki EylemSorgularını kutucuğundaki işareti kaldır.
Gelelim çözüme.
Ölçüt olarak Form2 ('deki ölçütleri:UNITEKODU ve TARIH) 'yi alan ve kayıt kaynağı PERMESAI olan bir sorgu oluştur. PMSorgu diyelim buna.
Yine ölçüt olarak Form2yi alan, kaynağı PERSONEL olan ve kayıtları sayan bir sorgu daha oluştur. SQL:""SELECT Count(PERSONEL.TCNO) AS SayTCNO FROM PERSONEL WHERE (((PERSONEL.UNITESI)=[Formlar]![Form2]![UniteKodu])); Bu sorgunun adı da MTEklencekler olsun.
Komut4 (PERSONELİ LISTEYE EKLE) 'ün OlayYordamına:
Kod:
Private Sub Komut4_Click()
On Error GoTo Err_Komut4_Click 'Bu satır hata durumunda gidilecek satır
'Koşulumuz;
If IsNull(DLookup("Kimlik", "PMSorgu")) Then 'PMSorguda listelenmiş kayıt var mı yok mu?? ve
'IsNull ise yani yoksa kayıt eklemeye uygundur demektir ,
'Kaç personel eklendiğini bulmak ve mesaj olarak göstermek için;
MsgBox (DLookup("SayTCNO", "MTEklenecekler") & " personel eklendi")
'Ekleme Sorgusunu çalıştırmak için;
DoCmd.OpenQuery "MESAITABLOSUNAEKLE", acNormal, acEdit
Else 'Şimdi koşulumuz olumsuz ise yani aynı ölçütlerde kayıt var ise;
'Hata için mesajımız;
MsgBox "Mükerrer kayıt hatası" & ChrW(13) & _
"Lütfen UNITEKODU ve TARIH kutularını kontrol ediniz."
'UniteKodu kutusuna yeniden odaklanması için kodumuz;
UniteKodu.SetFocus
End If
Exit_Komut4_Click: 'ÇIKIŞ satırı
Exit Sub
Err_Komut4_Click:
MsgBox Err.Description ' Accessin hata iletisi
Resume Exit_Komut4_Click 'ÇIKIŞ satırına dön
End Sub
Ben yaptım oldu