Soru Access veritabanına kayıtta mükerrer kayıt engelleme?

Katılım
12 Ocak 2009
Mesajlar
838
Excel Vers. ve Dili
2003
Merhaba,

Sorguyu aşağıdaki gibi deneyin. Tc alanını access'te metin olarak oluşturduğunuz için hata veriyordu.

Kod:
 rs.Open "select * from [REHBER] where [TC_KIMLIK] = '" & txtTCKimlik & "'", baglan, 1, 3
Aşağıdaki satırı'da koddan kaldırın. Ona göre yok , otomatik sayı alanı olduğu için.

Kod:
rs("KIMLIK") = yeniid.Value
Teşekkürler hocam.
Yeni kayıt işleminde T.C Kimlik ten mükerrerlik kontrolü yapılıyor.
1.PNG
Aynı kontrolü kayıt güncelleme modülünde de yapabilirmiyiz.
Kod:
Private Sub CommandButton2_Click() 'GÜNCELLE
On Error Resume Next

If txtAdi.Text = "" Then
txtAdi.SetFocus
MsgBox ("Lütfen Listeden çift tık ile kişi seçin ..."), vbInformation, "Süleyman SAVAŞ"
Exit Sub
End If

Set baglan = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")

Call baglanti
 
  rs.Open "select * from REHBER where REHBER.KIMLIK like '%" & txKimlik.Text & "%'", baglan, 1, 2

If rs.RecordCount > 0 Then


 rs("ADI_SOYADI") = txtAdi.Value
 rs("TC_KIMLIK") = txtTCKimlik.Value
 rs("SICIL") = txtSicil.Value
 rs("IL") = cmbIL.Value
 rs("ILCE") = cmbILCE.Value

           rs.Update
          
MsgBox txtAdi & " adlı kayıt başarı ile güncellendi.", , "Süleyman SAVAŞ"
End If
        rs.Close

listeye_al
temizle
End Sub
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,596
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Benim görüşüm veritabanı işlemlerinde kayıt güncelleme yapmayın.
En iyisi iptal ederek , yeniden kayıt girmek.

Kayıt güncellemek için listwiev' e bakmam lazım ama 64 bit kullandığım için nesne bende çalışmıyor.
Listbox kullanmanız standart açısından daha iyi olur.
 
Katılım
12 Ocak 2009
Mesajlar
838
Excel Vers. ve Dili
2003
Benim görüşüm veritabanı işlemlerinde kayıt güncelleme yapmayın.
En iyisi iptal ederek , yeniden kayıt girmek.

Kayıt güncellemek için listwiev' e bakmam lazım ama 64 bit kullandığım için nesne bende çalışmıyor.
Listbox kullanmanız standart açısından daha iyi olur.
Listbox ile listview kullanım tercihi açısından her hangi bir ön yargı veya önkabulüm yok. Dediğim gibi excel ile acces veritabanı kullanımı hakkında temelden başlayıp yavaş yavaş ilerlemek istiyorum.
Yardımcı olursanız diğer bir sorunu arz etmek istiyorum.
Veritabanındaki iller ve ilçeler alanlarından comboboxlara veri alıyorum. Comboxlarda veri varken temizle modülü çalışınca aşağıdaki hatayı veriyor.
Kod:
Private Sub UserForm_Initialize()
       
listeye_al

End Sub

Private Sub listeye_al()
...'kodlar'
cmbIL.Column = baglan.Execute("select distinct [il]  from [iller]").GetRows
End Sub

Private Sub cmbil_Change()
Dim s As String
s = "select evn.[ilce] from [ilceler] as evn INNER JOIN [iller] as T ON evn.[il_ID]= T.[id] where T.[il]='" & cmbIL.Text & "'"
cmbILCE.Column = baglan.Execute(s).GetRows

End Sub

Private Sub temizle()
txKimlik = ""
txtAdi = ""
txtTCKimlik = ""
txtSicil = ""
cmbIL = ""
cmbILCE = ""

txtAdi.SetFocus
End Sub
1.PNG
2.PNG
 
Katılım
12 Ocak 2009
Mesajlar
838
Excel Vers. ve Dili
2003
Dosyanız hata veriyordu. Sadece veri girişi yapan örnek dosyanın linki aşağıda
http://s3.dosya.tc/server17/s21igw/ornek.zip.html
Not Access dosyasındaki TC_KIMLIK alanını Metin yapın.
Teşekkür ederim arkadaşım. Ortaya çıkan sorunlar değerli uzman arkadaşların yardımlarıyla yavaş yavaş çözülüyor.
Şimdilik çözüm bekleyen sorun: Kayıt güncelleme işleminde de mükerrer kayıt sorgusu yapılması gerekiyor.
 
Katılım
12 Aralık 2015
Mesajlar
1,200
Excel Vers. ve Dili
Türkçe Ofis 2007
Fazla işine karışıyorum ama niçin excel formundan yapıyorsun bu işlemleri, Access in kendi formları bu iş için daha yetenekli.
 
Katılım
12 Ocak 2009
Mesajlar
838
Excel Vers. ve Dili
2003
Access ile yeni tanışıyorum. Öğrenmek için yeterli ve detaylı bir kaynak henüz bulamadım

SM-N910C cihazımdan Tapatalk kullanılarak gönderildi
 
Üst