Kayıt Varsa Birşey Yapmasın Yoka Eklesin

1 2 3 4 5
26/02/2020, 13:00

yahyamacit

İ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.
26/02/2020, 13:36

userx

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
26/02/2020, 13:44

berduş

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
26/02/2020, 13:46

orhantanriverdi

Cok basit birsekilde ornek olmasi icin append query ekledim
26/02/2020, 14:05

berduş

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
26/02/2020, 14:27

yahyamacit

Çok teşekkür ediyorum. Emeğinize sağlık.
1 2 3 4 5