[VBA] 3 alana göre mükerrer kayıt
#1
selam
başlık uydumu bilemiyorum
alttaki kod ile 1 alana göre mükerrer kayıt kontrolu yapılmakta benim istediğimse 3 veya daha fazla alana göre mükerrer olması
örneğin telefon numaralarını kontrolu için

'mukerrer tc no kontrol
On Error Resume Next ' alan boş olduğundan runtime 94 hatası vermekte
'-----Mükerrer TCNo Engelleme-----------------------------------------------------------------------
Dim SD As String
Dim stLinkCriteria As String
SD = Me.TCNo.Value
stLinkCriteria = "TCNo" = " & " '" & SD & "'"
Dim kontrol, tari, adi, tcnum, firad, kod As String
kontrol = DLookup("TCNo", "CariKart", "TCNo='" & Me.TCNo & "'")

If Not IsNull(kontrol) Then

tari = DLookup("IslemTarih", "CariKart", "TCNo='" & Me.TCNo & "'")
tcnum = DLookup("TCNo", "CariKart", "TCNo='" & Me.TCNo & "'")
adi = DLookup("AdiSoyadi", "CariKart", "TCNo='" & Me.TCNo & "'")
firad = DLookup("FirmaAdi", "CariKart", "TCNo='" & Me.TCNo & "'")
kod = DLookup("MusteriKodu", "CariKart", "TCNo='" & Me.TCNo & "'")
End If

If Len(kontrol) > 0 Then
MsgBox "TC No Benzerliği" & vbCr & vbCr & "TC No : " & tcnum & vbCr & " " & vbCr & _
"Cari Kodu : " & kod & " " & vbCr & _
"Kayıt Tarihi : " & tari & " " & " " & vbCr & _
"Firma Adı : " & firad & " " & " " & vbCr & _
"Adı Soyadı : " & adi & " " & vbCr & vbCr & _
"Kaydınız Var" & vbCr & _
"DEĞİŞTİRİN", vbInformation, "A-Yapı UYARI !!!"
End If



  Alıntı
Bu mesajı beğenenler:
#2
Merhaba..

Kriter uygulayacağınız alanın veri tipi kriter yapısını belirler.. Sayı ise çift tırnak metin ise tek tırnak kullanmalıyız..

Prosedür yapınız üzerinde çeşitli örnekler hazırladım..:

Visual Basic
  1. On Error Resume Next ' alan boş olduğundan runtime 94 hatası vermekte
  2. 'Taruz Not: boş değer hatasını engellemek için Dlookup değil Dcount kullanmakta fayda var..
  3.  
  4. Dim SD As String
  5. Dim stLinkCriteria As String
  6. SD = Me.TCNo.Value
  7. stLinkCriteria = "TCNo" = " & " '" & SD & "'"
  8. Dim kontrol, tari, adi, tcnum, firad, kod As String
  9. kontrol = DCount("*", "CariKart", "TCNo='" & Me.TCNo & "'")
  10. ''Taruz Not: iki metin kriteri için örnek..:
  11. kontrol = DCount("*", "CariKart", "TCNo='" & Me.TCNo & "' and ikincialan = '" & kriteriniz & "' ")
  12. ''Taruz Not: iki metin bir sayı kriteri için örnek..:
  13. kontrol = DCount("*", "CariKart", "TCNo='" & Me.TCNo & "' and ikincialan = '" & kriteriniz & _
  14.   "' and sayialani= " & sayikriteri)
  15.  
  16. 'If Not IsNull(kontrol) Then
  17. If kontrol = 0 Then ''Taruz Not: Dcount ile bu yapı kullanılmalı..
  18. '.....
  19. '............
  20. '...................
  21. '............
  22. End If
  23. End Sub





  Alıntı
Bu mesajı beğenenler:
#3
Visual Basic
  1. Dim rs As ADODB.Recordset
  2. Dim cn As ADODB.Connection
  3. Dim SQL As String
  4.  
  5. Set rs = New ADODB.Recordset
  6. Set cn = CurrentProject.Connection
  7.  
  8. SQL = "SELECT Count(id) AS Sayid FROM Tablo WHERE alan1='aranan1' AND alan2='aranan2' AND alan3='aranan3'"
  9.  
  10. rs.Open SQL, cn, adOpenStatic
  11.  
  12. If Not rs.EOF Then
  13. If rs.Fields("sayid") > 0 Then
  14. MsgBox ("mukerrerlik var")
  15. Else
  16. MsgBox ("mukerrerlik yok")
  17. End If
  18. End If





  Alıntı
Bu mesajı beğenenler:
#4
selam
iki alternatif içinde teşekkürler

örnek üzerinde uygulama şansımız varmı acaba

tekrar teşekkürler


Eklenti Dosyaları
.rar   3 alana gore mukerrer.rar (Boyut: 18,65 KB / İndirilme: 127)



  Alıntı
Bu mesajı beğenenler:
#5
Merhaba..

Örnekteki metin kutuları ilişkisiz, form kaynağı ile bir bağlantısı yok.. Dolayısıyla kayıt yönteminizi kestiremediğimden ben size tüm alanlar için hazırlanmış bir yapı vereyim.. Metin kutularını ilgili alana bağladıktan sonra formun güncelleştirme öncesinde olayında kullanabilirsiniz..:

Visual Basic
  1. Dim a As Integer
  2. a = DCount("*", "CariKart", _
  3. "AdiSoyadi= '" & Me.AdiSoyadi _
  4.   & "' and Telefon1= '" & Me.Telefon1 & "' and Telefon2 = '" _
  5.   & Me.Telefon2 & "' and Telefon3 = '" & Me.Telefon3 & "' ")
  6. If a > 0 Then
  7. MsgBox "aynı kayıttan var.."
  8. Cancel = -1
  9. End If





  Alıntı
Bu mesajı beğenenler:
#6
Sayın taruz bey
hatayı aslında konunun en başında yaptım yeterli açıklma vs yazılmadı

form kayıt kaynağı yok
textboxlarda aynı şekilde bu şekilde mukerrer kontrolunu 3 alanda yapılması için soru sordum

mumkunmu
saygılar



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  Açılan Kutudan Kritere Göre Veriyi Başka Alana Yazdırma osman06 8 474 23-11-2025, 11:33
Son Mesaj: dsezgin
access-sql-20 [TABLO] Liste Kutusu-çoklu Seçim özellikli Alana Excelden Verileri Yapıştırma mkoblayek 18 1.096 18-02-2025, 08:49
Son Mesaj: mkoblayek
  çoklu Kullanıcılarda Mükerrer Evrak Numarası (transaction) kaburkan 4 427 09-01-2025, 13:26
Son Mesaj: celalll
access-sql-9 [SORGU] Tabloda Geçen Iki Alanda Ortak Kelime Var Ise Istenilen Alana Işaret Koymak sevincili 5 452 20-09-2024, 01:09
Son Mesaj: dsezgin
  [FORM] Formda Kriterlere Göre Sorgulanan Kayıt Miktarının Form üzerinde Gösterilmesi M_Kemal_Askeri 1 380 13-05-2024, 05:10
Son Mesaj: dsezgin
  Farklı Tablodan Mükerrer Olmayan Bilgi Almak bilservisci 5 535 17-12-2023, 18:04
Son Mesaj: dsezgin
  [FORM] Metin Kutusundaki Değere Göre Altforma Kayıt Eklensin Yada Eklenmesin ŞabanTR 4 587 17-12-2023, 17:40
Son Mesaj: ŞabanTR
  Raporda Büyüyebilir Alana Göre Dikey çizginin Yüksekliğinin Değişmesi adnnfrm 1 366 13-11-2023, 17:18
Son Mesaj: BeyTor

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 3 Ziyaretçi