Skip to main content

AccessTr.neT


Ado İle Kayit Edilen Bilginin Mukerrer Olmasi Nasil Onlenir?

Oğuz Türkyılmaz
Oğuz Türkyılmaz
6
550

Ado İle Kayit Edilen Bilginin Mukerrer Olmasi Nasil Onlenir?

Çözüldü #1
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.
Visual Basic Code
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
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#2
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
Cevapla
#3
(28/02/2020 16:44)berduş Adlı Kullanıcıdan Alıntı: 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.
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#4
(28/02/2020 16:48)Oğuz Türkyılmaz Adlı Kullanıcıdan Alıntı:
(28/02/2020 16:44)berduş Adlı Kullanıcıdan Alıntı: 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
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#5
Visual Basic Code
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.
"Boş Örnek Eklerim, Yapıp Verirler" demeyin, örneğinizi hazırlayın.
Komplike kod talebiniz var ise İletişim bağlantısından bize ulaşın. 
Cebelleşmezsen Öğrenemezsin. 
Cevapla
#6
teşekkürler sn.ozanakkaya
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da