İki veritabanım var. Personel vertabanını olay veritabanına her ay aktaracağım. ama yeni personel kayıt durumunda aynı aya eklediğimde aynı kaydı tekrar alıyor. Ben sadece yeni kaydın eklenmesini istiyorum. örneği basitleştirip ekledim. Şimdiden teşekkür ederim.
Private Sub Komut11_Click()
Dim rs As New ADODB.Recordset
rs.Open "OLAY", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
Dim rs1 As New ADODB.Recordset
rs1.Open "PERSONEL", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
Dim SID As String
Dim stLinkCriteria As String
SID = Me.[AY1].Value
stLinkCriteria = "[AY1]=" & "'" & SID & "'"
If DCount("*", "OLAY", "AY =AY1") > 0 Then
MsgBox "Girdiğiniz " _
& SID & ". Ay daha önce girilmiştir." _
& vbCr & vbCr & "Lütfen Kayıtları Kontrol Ediniz.", vbInformation, "Mükerrer Kayıt No Hatası...!"
Me.Undo
Else
If rs1.EOF <> True Then
Do
rs.AddNew
rs("PERNO") = rs1("PERSONEL NO")
rs("ADI") = rs1("ADI")
rs("SOYADI") = rs1("SOYADI")
rs("AY") = Me.AY1
rs.Update
rs1.MoveNext
Loop Until rs1.EOF
Set rs1 = Nothing
Set rs = Nothing
Set conn = Nothing
End If
Form.Requery
Exit Sub
End If
End Sub
aktarma kodunu aşağıdaki kodla değiştirip dener misiniz?
SqlEkle = " INSERT INTO OLAY " & _
" SELECT EklSql.* " & _
" FROM " & _
" (SELECT PERSONEL.[PERSONEL NO] as PERNO, PERSONEL.ADI, PERSONEL.SOYADI, " & Me.[AY] & " AS AY " & _
" FROM PERSONEL LEFT JOIN OLAY ON PERSONEL.[PERSONEL NO] = OLAY.PERNO " & _
" WHERE (((OLAY.PERNO) Is Null))) as EklSql"
CurrentDb.Execute SqlEkle
'aktar
Form.Requery
Cok basit birsekilde ornek olmasi icin append query ekledim
hem isim hem de ay mı kontrol edilecek ozaman aşağıdaki şekilde deneyebilirsiniz.
SqlEkle = " INSERT INTO OLAY " & _
" SELECT EklSql.* " & _
" FROM " & _
" (SELECT PERSONEL.[PERSONEL NO] AS PERNO, PERSONEL.ADI, PERSONEL.SOYADI, " & Me.AY & " AS AY " & _
" FROM PERSONEL LEFT JOIN OLAY ON PERSONEL.[PERSONEL NO] = OLAY.PERNO " & _
" WHERE (((OLAY.PERNO) Is Null)) OR (((OLAY.AY)<>'" & Me.AY & "' ))) as EklSql"
CurrentDb.Execute SqlEkle
'aktar
Form.Requery
Çok teşekkür ediyorum. Emeğinize sağlık.