Skip to main content

AccessTr.neT


Tekrarlayan Kaydı Engelleme

Tekrarlayan Kaydı Engelleme

#7
SayKayit = DCount("*", "Tablo2", [harf_id] & "=" & Me.harf_id & " and " & "tarih='" & Me.tarih & " and " & "sayı='" & Me.sayı & "'")
Kodunuzda hem sayisal hem de tarih değerlerini tek tırnak içine almışsınız sadece metinsel değerler tek tırnak içine alınır. Ayrıca tarihi clng(me.tarih) içine almanız daha doğru olur.
Cevapla
#8
Maalesef,
Bu kod da hata veriyor. Dediğiniz düzenlemeyi ilk mesajımda verdiğim örnek dosyada deneyebilirsiniz. Hata neyden kaynaklanıyor anlamadım.
Cevapla
#9
kodun son halini ekler misiniz?
Cevapla
#10
bu arada galiba bir yanlış anlama olmuş: ben 7. mesajda size kod önermedim hatalı olan yerleri kırmızı ile gösterdim.
Cevapla
#11
Anladım. Neyse, durumu ChatGPT'ye tanımladım sağolsun çözdü benim için. Kodu aşağıda veriyorum, başka bu konuda arayışı olanlara da çözüm olabilri. Teşekkürler.

Kod:
Private Sub Komut4_Click()
    
    Dim veriSayisi As Integer
    Dim kontrolVerisi1 As String
    Dim kontrolVerisi2 As String
    Dim kontrolVerisi3 As String

    ' Kontrol edilecek verileri al
    kontrolVerisi1 = Me.HARF1 ' 1. alan
    kontrolVerisi2 = Me.HARF2 ' 2. alan
    kontrolVerisi3 = Me.HARF3 ' 3. alan
    
    ' Tablo adı ve kontrol edilecek alan adlarını değiştirin
    veriSayisi = DCount("*", "Tablo1", "HARF1='" & kontrolVerisi1 & "' AND HARF2='" & kontrolVerisi2 & "' AND HARF3='" & kontrolVerisi3 & "'")
    
    ' Eğer tablo da bu veri sayısı 0'dan fazla ise uyarı ver
    If veriSayisi > 0 Then
        MsgBox "Bu kayıt zaten mevcut. Kayıt yapılamaz.", vbExclamation, "Uyarı"
        Me.Undo
    Else
        ' Kayıt işlemini gerçekleştirin
        DoCmd.RunCommand acCmdSaveRecord
        
        ' Yeni kayda geç
        DoCmd.GoToRecord , , acNewRec
    End If

End Sub

Cevapla
#12
açıkçası kodun çalışmasına şaşırdım, sayısal/tarih alanlarında tek tırnak kullanılmaz diye biliyorum. bu kodda hepsi tek tırnaklı!
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task