AccessTr.neT
Ado İle Kayit Edilen Bilginin Mukerrer Olmasi Nasil Onlenir? - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html)
+--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Ado İle Kayit Edilen Bilginin Mukerrer Olmasi Nasil Onlenir? (/konu-ado-ile-kayit-edilen-bilginin-mukerrer-olmasi-nasil-onlenir.html)

Sayfalar: 1 2


Ado İle Kayit Edilen Bilginin Mukerrer Olmasi Nasil Onlenir? - Oğuz Türkyılmaz - 28/02/2020

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



Cvp: Ado İle Kayit Edilen Bilginin Mukerrer Olmasi Nasil Onlenir? - berduş - 28/02/2020

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


Cvp: Ado İle Kayit Edilen Bilginin Mukerrer Olmasi Nasil Onlenir? - Oğuz Türkyılmaz - 28/02/2020

(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.


Cvp: Ado İle Kayit Edilen Bilginin Mukerrer Olmasi Nasil Onlenir? - Oğuz Türkyılmaz - 28/02/2020

(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


Cvp: Ado İle Kayit Edilen Bilginin Mukerrer Olmasi Nasil Onlenir? - ozanakkaya - 28/02/2020

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.


Cvp: Ado İle Kayit Edilen Bilginin Mukerrer Olmasi Nasil Onlenir? - accessman - 28/02/2020

teşekkürler sn.ozanakkaya