Aynı isim varsa kaydetme, uyar

akd

Destek Ekibi
Destek Ekibi
Katılım
14 Ağustos 2004
Mesajlar
1,114
Excel Vers. ve Dili
2003
Merheba arkadaşlar,
Access'de butonla kayıt yaparken, daha önce aynı isim kaydı varsa,
kaydetmeyip uyarı varesini nasıl sağlayabiliriz.

Private Sub Komut35_Click()
On Error GoTo Err_Komut35_Click
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Me.Liste22.Requery
Exit_Komut35_Click:
Exit Sub
Err_Komut35_Click:
MsgBox Err.Description
Resume Exit_Komut35_Click
End Sub

İyi akşamlar
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın akd,

Kod:
Private Sub txtAdı_BeforeUpdate(Cancel As Integer)
Dim strAdı As String
Dim strAçıklama As String
Dim intSıraNo As Integer
Dim rst1 As DAO.Recordset
Dim db As DAO.Database

strAdı = Me.txtAdı
Set db = CurrentDb()
Set rst1 = db.OpenRecordset("SELECT * FROM tblUyarı")

rst1.MoveFirst
rst1.FindFirst "Adı = '" & strAdı & "'"
If rst1.NoMatch Then
'MsgBox "No match was found" 'you could exit the sub here - the msgbox is just here to show you the results
Else
intSıraNo = rst1("SıraNo")
strAçıklama = DFirst("Adı", "tblUyarı", "SıraNo = " & intSıraNo) 'or you could point this to a query where you could concatenate first/last name
MsgBox "Bu ad daha önce girilmiş: " & strAçıklama, , "Dikkat!"
End If
rst1.Close
Set rst1 = Nothing
Set db = Nothing
End Sub
Tekrarlanmasını istemediğiniz adı alnının bağlantılı olduğu metin kutusunun güncelleştirme öncesi yordamına yukarıdaki kodu yazın.

İyi çalışmalar:)
 

akd

Destek Ekibi
Destek Ekibi
Katılım
14 Ağustos 2004
Mesajlar
1,114
Excel Vers. ve Dili
2003
Merhaba sayın modalı,
öncelikle ilginizden dolayı teşekkürlerimi sunarım,
Kodu bana göre uyguladım
Dim rst1 As DAO.Recordset
satırı hata veriyor, neden acaba ?

Private Sub AptAdi_BeforeUpdate(Cancel As Integer)
Dim strAdı As String
Dim strAçıklama As String
Dim intsıra As Integer
Dim rst1 As DAO.Recordset
Dim db As DAO.Database

strAdı = Me.AptAdi
Set db = CurrentDb()
Set rst1 = db.OpenRecordset("SELECT * FROM tblUyarı")

rst1.MoveFirst
rst1.FindFirst "Adı = '" & strAdı & "'"
If rst1.NoMatch Then
Else
intsıra = rst1("sıra")
strAçıklama = DFirst("Adı", "tblUyarı", "sıra = " & intsıra) 'or you could point this to a query where you could concatenate first/last name
MsgBox "Bu ad daha önce girilmiş: " & strAçıklama, , "Dikkat!"
End If
rst1.Close
Set rst1 = Nothing
Set db = Nothing
End Sub
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın akd,

Referans hatası. VB düzenleyicisinden açılan kod yazma penceresinin tools menüsünden referances ı seçip Microsoft DAO 3.x Library referansını ekleyin.

iyi çalışmalar
 

akd

Destek Ekibi
Destek Ekibi
Katılım
14 Ağustos 2004
Mesajlar
1,114
Excel Vers. ve Dili
2003
Merhaba sayın modalı kardeş,
malesef ben bu kodu çalıştıramadım,
daha sade (az) bir kod ile yapamazmıyız bu olayı.

Birde kaydı butonla yapmakiçin buton koydum,
yeni kayıt için butonuna tıkladıktan sonra,
vaz geçemiyorum her halukarda bir kayıt yapıyor, kayıt ismi olarakda 0 veriyor.
Kayıt butonu haricinde kayıt yapmamasını nasıl sağlayabilirim...
affınıza sıgınarak,

İyi akşamlar...
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Daha çabuk cevap için lütfen örnek gönderin.

İyi çalışmalar:)
 
Son düzenleme:

akd

Destek Ekibi
Destek Ekibi
Katılım
14 Ağustos 2004
Mesajlar
1,114
Excel Vers. ve Dili
2003
Merhaba sayın modalı,
Çok afedersin sayın kardeşim senide yoruyorum,
uyarıyı veriyor, ama o textbox'u geçiyor
excelin vba sında ben
txtAdı.SetFocus
txtAdı.Text = ""
yapıp geri aynı hücreye gelmesini ve başka isim yazması için israr ediyordum,
access de bu olay neden çalışmıyor acaba?

Private Sub txtAdı_BeforeUpdate(Cancel As Integer)
Dim strAdı As String
Dim strAçıklama As String
Dim intSıraNo As Integer
Dim rst1 As DAO.Recordset
Dim db As DAO.Database


strAdı = Me.txtAdı
Set db = CurrentDb()
Set rst1 = db.OpenRecordset("SELECT * FROM tblUyarı")


rst1.MoveFirst
rst1.FindFirst "Adı = '" & strAdı & "'"
If rst1.NoMatch Then
'MsgBox "No match was found" 'you could exit the sub here - the msgbox is just here to show you the results
Else
intSıraNo = rst1("SıraNo")
strAçıklama = DFirst("Adı", "tblUyarı", "SıraNo = " & intSıraNo) 'or you could point this to a query where you could concatenate first/last name
MsgBox "Bu ad daha önce girilmiş: " & strAçıklama, , "Dikkat!"

txtAdı.SetFocus
txtAdı.Text = ""

End If

rst1.Close
Set rst1 = Nothing
Set db = Nothing
End Sub

İyi akşamlar ...
 
Son düzenleme:

akd

Destek Ekibi
Destek Ekibi
Katılım
14 Ağustos 2004
Mesajlar
1,114
Excel Vers. ve Dili
2003
Merhaba arkadaşlar,
Tek isim girilecek yere Birincil anahtar komutu verdim
aynı ismi kaydetmiyor,
çok güzel ama uyarısını nasıl degiştirebilirim , lütfen anlatabilirmisiniz.
ben şöyle yaptım, yine aynı kendi uyarısını veriyor...

Private Sub Komut35_Click()
On Error GoTo Err_Komut35_Click
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Me.Liste22.Requery
Exit_Komut35_Click:
Exit Sub
Err_Komut35_Click:
MsgBox " AYNISI İSİMDEN VAR ", vbDefaultButton1

' MsgBox Err.Description
Resume Exit_Komut35_Click
End Sub
 
Katılım
6 Ekim 2006
Mesajlar
371
Excel Vers. ve Dili
2010
birde text alanlarının güncelleştirme öncesinde koduna aşağıdaki gibi bir uygulama ile her text alanını kontrol edebilirsiniz ayrı ayrı

Private Sub İrsaliye_BeforeUpdate(Cancel As Integer)
Dim SID As String
Dim stLinkCriteria As String


SID = Me.[İrsaliyeNo].Value
stLinkCriteria = "[İrsaliyeNo]=" & "'" & SID & "'"


If DCount("[İrsaliyeNo]", "Fatura İrsaliye", stLinkCriteria) > 0 Then
'Undo duplicate entry


MsgBox "Girmekte Oldugunuz " _
& SID & " No'lu İrsaliye Daha Önce İşlenmiş." _
& vbCr & vbCr & "Lütfen Kayıtları Kontrol Ediniz.", vbInformation _
, "Mükerrer Kayıt"
End If
Me.Undo
End Sub
 

akd

Destek Ekibi
Destek Ekibi
Katılım
14 Ağustos 2004
Mesajlar
1,114
Excel Vers. ve Dili
2003
Merhaba sayın atilla52 kardeşim,
Cevabınız için çok teşekkür ederim,
Aynı kaydı girince uyarıyor çok güzel, *****
ama başka kayıt girincede siliyor.
textboxu boşaltıyor.
Degişik kaydıda kabul ederse, tam aradığım kod bu...
İyi akşamlar...
 
Üst