Ado İle Kayit Edilen Bilginin Mukerrer Olmasi Nasil Onlenir?

1 2
28/02/2020, 16:40

Oğuz Türkyılmaz

Merhaba Asagidaki kod ile tabloya kayit yapiliyor. Fakat formda ileri geri gezinirken herhangi bir kaydin uzerindeyanlislikla tekrar kaydet tusuna basildiginda dogal olarak ayni kaydin 2.bir kopyasini daha tabloya ekliyor. Bu durumun engellenmesi icin ne yapilabilir. msgbox ile islemin engellenmesine yonelik bir  durum yaratip sub dan cikilmasini saglamak dogru bir yontem olurmu baska ne gibi bir onlem alinabilir. Tesekkurler.
Private Sub KAYDET_BTN_Click()

If Me.UyeNo_TXT = "" Or IsNull(Me.UyeNo_TXT) Or IsNull(Me.TcNo_TXT) Or Me.TcNo_TXT = "" Or IsNull(Me.AdSoyad_TXT) Or Me.AdSoyad_TXT = _
"" Or Me.DogumTarihi_TXT = "" Or IsNull(Me.DogumTarihi_TXT) Or Me.UyeKabulTarih_TXT = "" Or IsNull(Me.UyeKabulTarih_TXT) Then

If IsNull(Me.AdSoyad_TXT) Or Me.AdSoyad_TXT = "" Then
  MsgBox "DÝKKAT" & vbCrLf & "Lütfen Ad Soyad bilgisini giriniz!. " & vbCrLf & "Kayit iþlemi için bu bilginin girilmesi zorunludur", vbCritical
  Me.AdSoyad_TXT.SetFocus
  Exit Sub
End If

If IsNull(Me.TcNo_TXT) Or Me.TcNo_TXT = "" Then
  MsgBox "DÝKKAT" & vbCrLf & "Lütfen Tc kimlik numarasýný giriniz!. " & vbCrLf & "Kayit iþlemi için bu bilginin girilmesi zorunludur", vbCritical
  Me.TcNo_TXT.SetFocus
  Exit Sub
End If

If IsNull(Me.DogumTarihi_TXT) Or Me.DogumTarihi_TXT = "" Then
  MsgBox "DÝKKAT" & vbCrLf & "Lütfen doðum tarihini giriniz!. " & vbCrLf & "Kayit iþlemi için bu bilginin girilmesi zorunludur", vbCritical
  Me.DogumTarihi_TXT.SetFocus
  Exit Sub
End If

If IsNull(Me.UyeKabulTarih_TXT) Or Me.UyeKabulTarih_TXT = "" Then
  MsgBox "DÝKKAT" & vbCrLf & "Lütfen üye kabul karar tarihini Giriniz!. " & vbCrLf & "Kayit iþlemi için bu bilginin girilmesi zorunludur", vbCritical

  Me.UyeKabulTarih_TXT.SetFocus
  Exit Sub
End If

Else

If MsgBox("Girdiginiz veriler kaydedilecektir, Onayliyormusunuz ", vbExclamation + vbYesNo, "Dikkat") = vbNo Then Exit Sub

Dim rstkayit As ADODB.Recordset
Dim strSQL As String

strSQL = "SELECT * FROM T_Uye "
    Set rstkayit = New ADODB.Recordset
    rstkayit.Open strSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
        With rstkayit
            If Not rstkayit.EOF Then
                .AddNew
                .Fields("UyeNo") = Me.UyeNo_TXT
                .Fields("AdSoyad") = Me.AdSoyad_TXT
                .Fields("TcNo") = Me.TcNo_TXT
                .Fields("Tabiyeti") = Me.Tabiyeti_TXT
                .Fields("DogumTarihi") = Me.DogumTarihi_TXT
                .Fields("DogumYeri") = Me.DogumYeri_TXT
                .Fields("AnaAd") = Me.AnaAd_TXT
                .Fields("BabaAd") = Me.BabaAd_TXT
                .Fields("Cinsiyeti") = Me.Cinsiyeti_CBO.Column(0)
                .Fields("OgrenimDurumu") = Me.OgrenimDurumu_CBO.Column(0)
                .Fields("Meslegi") = Me.Meslegi_TXT
                .Fields("SosyalGuvence") = Me.SosyalGuvence_CBO.Column(0)
                .Fields("CepNo_1") = Me.CepNo1_TXT
                .Fields("CepNo_2") = Me.CepNo2_TXT
                .Fields("Irtibat") = Me.Irtibat_TXT
                .Fields("Ilce") = Me.Ilce_TXT
                .Fields("Sehir") = Me.Sehir_TXT
                .Fields("UyeKabulTarih") = Me.UyeKabulTarih_TXT
                .Fields("UyeKabulKararNo") = Me.UyeKabulKararNo_TXT
                .Fields("UyeIptalTarih") = Me.UyeIptalTarih_TXT
                .Fields("UyeIptalKararNo") = Me.UyeIptalKararNo_TXT
                .Fields("UyelikIptalNedeni") = Me.UyelikIptalNedeni_TXT
                .Fields("E_Mail") = Me.EMail_TXT
                .Fields("Adres") = Me.Adres_TXT
                .Fields("Aciklama") = Me.Aciklama_TXT
                .Fields("KanGrubu") = Me.KanGrubu_CBO.Column(0)
                .Fields("EngelNedeni") = Me.EngelNedeni_TXT
                .Fields("EngelYuzdesi") = Me.EngelYuzdesi_TXT
                .Fields("IlgilendigiSpor") = Me.IlgilendigiSpor_TXT
                .Fields("KanadyenBaston") = Me.KanadyenBaston_OKS
                .Fields("Yurutec") = Me.Yurutec_OKS
                .Fields("Protez") = Me.Protez_OKS
                .Fields("Ortez") = Me.Ortez_OKS
                .Fields("AkuluAraba") = Me.AkuluAraba_OKS
                .Fields("ManuelAraba") = Me.ManuelAraba_OKS
                .Fields("Resim") = Me.Resim
                .Fields("Durum") = Me.Durum_CBO.Column(0)
                .Update
            End If
        End With
Dim fat As Control
    For Each fat In Me.Form.Controls
    Select Case fat.ControlType
        Case acTextBox
            fat.Value = ""
          Case acComboBox
              fat.Value = ""
            Case acCheckBox
                fat.Value = "0"
    End Select
Next
End If
End Sub
28/02/2020, 16:44

berduş

benzersiz kimlik alanınız yok mu onu kullanarak tabloda var mı onu kontrol edebilirsiniz ya da eğer üyeNO gibi elle oluşturulan bir alanınız varsa onu benzersiz olarak ayarladığınızda tekrar kaydı oluşmaz
28/02/2020, 16:48

Oğuz Türkyılmaz

(28/02/2020, 16:44)berduş yazdı: benzersiz kimlik alanınız yok mu onu kullanarak tabloda var mı onu kontrol edebilirsiniz ya da eğer üyeNO gibi elle oluşturulan bir alanınız varsa onu benzersiz olarak ayarladığınızda tekrar kaydı oluşmaz
Onu simdi yaziyordum sn@berduş onu denedim fakat kaydete bastiginizda bu sefer hic bir aciklama yapmadan direk formu kapatiyor.
28/02/2020, 16:49

Oğuz Türkyılmaz

(28/02/2020, 16:48)Oğuz Türkyılmaz yazdı:
(28/02/2020, 16:44)berduş yazdı: benzersiz kimlik alanınız yok mu onu kullanarak tabloda var mı onu kontrol edebilirsiniz ya da eğer üyeNO gibi elle oluşturulan bir alanınız varsa onu benzersiz olarak ayarladığınızda tekrar kaydı oluşmaz
Onu simdi yaziyordum sn@berduş onu denedim fakat kaydete bastiginizda bu sefer hic bir aciklama yapmadan direk formu kapatiyor.
Bu sekilde ayarlayip kullanici kaydete bastiginda bir mesaj verip formun kapatilmamasini nasil saglarim
28/02/2020, 17:40

ozanakkaya

strSQL = "SELECT * FROM T_Uye "
    Set rstkayit = New ADODB.Recordset
    rstkayit.Open strSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
        With rstkayit
             .Find "[benzersizalan]=" & "'" & Me![benzersizalanmetinkutusu] & "'"
            If Not rstkayit.EOF Then
                .Fields("sucno") = Me.sucno
                .Fields("UyeNo") = Me.UyeNo_TXT
               .Fields("AdSoyad") = Me.AdSoyad_TXT
.......
......
......

                .Update

               else
               .AddNew
               .Fields("sucno") = Me.sucno
               .Fields("UyeNo") = Me.UyeNo_TXT
               .Fields("AdSoyad") = Me.AdSoyad_TXT

......
.....
                .Update
            End If
        End With

Bu kod formdaki benzersiz alan tabloda var ise günceller, yok ise yeni kayıt olarak ekler.
28/02/2020, 17:56

accessman

teşekkürler sn.ozanakkaya
1 2