(12/01/2013, 17:22)fatih karagöl yazdı: zaten mükerret eklemiyo olması lazım. ancak tablo 1 de iki tane farklı FF var. o bir karışıklık yaratıyo olabilir mi. onun haricinde kontrol ettiğimde her kaydı bir kere atıyordu kod. ?
Hocam ff yanlış yazılmış fakat diğerlerinde de ekliyor. Örneğin AA'yı seçtiğimde sırano 1 olan bütün kayıtları ekliyor. Yani aa,bb ve cc. Sıkıntı şu ki AA'yı ben seçince zaten kaydediyor sonra sorgu çalışınca tekrar bir tane daha aa ekleniyor. Yani sorguda seçtiğim kaydın eklenmemesini sağlayabilir miyiz?
onu sağlarız ama daha sonra seçerek mükerrek eklediklerinizi de düşünmek lazım.
yeni kodlar aşağıdaki gibidir. manuel seçimlerinizi englemmesin istiyorsanız before update olayındandan ayarlayabilirsiniz. deneyin gözden kaçırdığımız bir şey varsa yeniden inceleriz.
Option Compare Database
Dim
Sql As String
Private Sub ADI_AfterUpdate()
Guncelle
End Sub
Private Sub Guncelle()
Dim siraNo As String, oAdi As String
sRecord
siraNo = Nz(ADI.Column(1)): If siraNo = "" Then Exit Sub
oAdi = ADI
Sql = "INSERT INTO Tablo2 ( ADI ) SELECT Tablo1.ADI FROM Tablo1 LEFT JOIN Tablo2 ON Tablo1.ADI = Tablo2.ADI WHERE (((Tablo1.SIRA_NO)= '" & siraNo & "') AND ((Tablo2.ADI) Is Null));"
DoCmd.RunSQL SQL
End Sub
Private Sub sRecord()
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
DoCmd.RunCommand acCmdSaveRecord
End Sub
Private Sub ADI_BeforeUpdate(Cancel As Integer)
kRecord
End Sub
Private Sub kRecord()
Dim oAdi As String, say As Integer
oAdi = Me.ADI: If oAdi = "" Then Exit Sub
say = Nz(DLookup("kimlik", "tablo2", "ADI = '" & oAdi & "'"))
If say > 0 Then MsgBox "bu zaten kayıtlı geri alıyorum", vbInformation, "Mükerrer giriş yapamazsın": Undo
End Sub
Sayın fatih karagöl son verdiğiniz kodla sorunum çözüldü. Yardımlarınız için çok teşekkür ederim.