AccessTr.neT
Tekrarlayan Kaydı Engelleme - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html)
+--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Tekrarlayan Kaydı Engelleme (/konu-tekrarlayan-kaydi-engelleme.html)

Sayfalar: 1 2 3 4


RE: Tekrarlayan Kaydı Engelleme - berduş - 02/10/2024

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.


RE: Tekrarlayan Kaydı Engelleme - notrino - 02/10/2024

Maalesef,
Bu kod da hata veriyor. Dediğiniz düzenlemeyi ilk mesajımda verdiğim örnek dosyada deneyebilirsiniz. Hata neyden kaynaklanıyor anlamadım.


RE: Tekrarlayan Kaydı Engelleme - berduş - 02/10/2024

kodun son halini ekler misiniz?


RE: Tekrarlayan Kaydı Engelleme - berduş - 02/10/2024

bu arada galiba bir yanlış anlama olmuş: ben 7. mesajda size kod önermedim hatalı olan yerleri kırmızı ile gösterdim.


RE: Tekrarlayan Kaydı Engelleme - notrino - 02/10/2024

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




RE: Tekrarlayan Kaydı Engelleme - berduş - 02/10/2024

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ı!