Aynı Kaydı Tekrar Kaydetmemek
#1
Herkese selam,

resmini gönderdiğim formumun üzerinde bir adet Kayıt Numarası kayıt alanı (TalepNu) var. ben formdaki bütün alanları doldurup kaydetttiğimde yıllara göre 2019-A-000001 gibi kayıt numarası veriyor ve her kayıt için bir arttırıyor. Ancak ben herhangi bir değişikllik için daha önce kaydettiğim bir kayda döndüğümde ve değişikliği yaptığımda Kaydet tuşuna basarsam yeni bir kayıt numarası veriyor. Bunu engellemek ve kayıt numarasında değişiklik yapmamak mümkün müdür acaba?
kaydet Butonunun altındaki Kodu da aşağıya ekledim;

Private Sub Komut9_Click()
On Error GoTo Err_Komut9_Click
Dim EnSon As Long
Me.TalepNu = vbNullString
EnSon = Nz(DMax("mid(TalepNu,8,len(TalepNu))", "Tbl_Emlak_Alici_Talep_Kayit", "Mid([TalepNu],1,4)=" & Year(Date) & " And Mid([TalepNu],6,1)='" & "A" & "'"), 0)
Me.TalepNu = Year(Date) & "-" & "A" & "-" & Format(IIf(EnSon = 0, 1, EnSon + 1), "000000")
SatisAlis.Value = "ALIŞ"
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
DoCmd.RunCommand acCmdSaveRecord
DoCmd.RefreshRecord
Exit_Komut9_Click:
    Exit Sub
    DoCmd.GoToControl "Sec"
Err_Komut9_Click:
    MsgBox Err.Description
    Resume Exit_Komut9_Click
End Sub


Eklenti Dosyaları
.png   Resim101.png (Boyut: 43,73 KB / İndirilme: 100)



  Alıntı
Bu mesajı beğenenler:
#2
Me.TalepNu = vbNullString <-- talep numarasını boşaltıyorsunuz, boşaltmak yerine eğer boşsa kontrolü yapmak daha uygun olur bence
Visual Basic
  1. Me.TalepNu = vbNullString
  2. EnSon = Nz(DMax("mid(TalepNu,8,len(TalepNu))", "Tbl_Emlak_Alici_Talep_Kayit", "Mid([TalepNu],1,4)=" & Year(Date) & " And Mid([TalepNu],6,1)='" & "A" & "'"), 0)
  3. Me.TalepNu = Year(Date) & "-" & "A" & "-" & Format(IIf(EnSon = 0, 1, EnSon + 1), "000000"


yerine aşağıdaki gibi deneyin
dilerim işinize yarar
iyi çalışmalar
Visual Basic
  1. if nz(me.talepnu,"")="" then
  2.    EnSon = Nz(DMax("mid(TalepNu,8,len(TalepNu))", "Tbl_Emlak_Alici_Talep_Kayit", "Mid([TalepNu],1,4)=" & Year(Date) & " And Mid([TalepNu],6,1)='" & "A" & "'"), 0)
  3. Me.TalepNu = Year(Date) & "-" & "A" & "-" & Format(IIf(EnSon = 0, 1, EnSon + 1), "000000"
  4. end if





  Alıntı
Bu mesajı beğenenler:
#3
Sayın halily,

Yazmış olduğunuz kodu işlerimin yoğunluğu sebebiyle ancak bir defa deneyebildim maalesef çalışmadı. Ancak bu hafta sonu tekrar deneyeceğim. Aslında çalıştı ama benim istediğim şekilde değil. Bu hafta sonu tekrar denediğimde sizinle sonucu paylaşacağım. Geç cevap verdiğim için kusura bakmayın...Unutmam mutlaka dönüş yaparım Smile

Teşekkür ederim.



  Alıntı
Bu mesajı beğenenler:
#4
Selamlar,

Özel işlerimden dolayı uzun süredir sitemize giremedim. Sayın halily'e geri dönüş için sözüm vardı, biraz geç oldu ama nihayet dönebildim. Yukarıdaki mesajlarda belirttiğim konuda deneme yaptım ancak aynı zamanda zorunluluktan dolayı veri tabanında da değişiklik yaptım. Eski kullandığım koda döndüm, sayın hahily'nin verdiği kod ile birleştirmeye çalıştım, aşağıdaki kod ortaya çıktı, uygulamamda aynı kaydı kaydetmek için denediğimde ise "IlanTalepNu" alanında yeni bir numara vermedi, diğer alanlarda yaptığım değişiklikleri kabul etti ancak Type Mismatch hatası verdi. (Daha önceki mesajlarımdaki TalepNu alanını mecburen IlanTalepNu olarak değiştirdim.)

En son uyguladığım kod aşağıdaki gibidir.

Dim EnSon As Long
If nz(Me.IlanTalepNu, "" = "" then
EnSon = Nz(DMax("mid(IlanTalepNu,8,len(IlanTalepNu))", "Tbl_Emlak_Alici_Satici_Ilan_Kayit", "Mid([IlanTalepNu],1,4)=" & Year(Date) & " And Mid([IlanTalepNu],6,1)='" & IIf(Me.Sec = 1, "A", IIf(Me.Sec = 2, "S", vbNullString)) & "'"), 0)
 
Me.IlanTalepNu = Year(Date) & "-" & IIf(Me.Sec = 1, "A", IIf(Me.Sec = 2, "S", vbNullString)) & "-" & Format(IIf(EnSon = 0, 1, EnSon + 1), "000000")
End If

Yardımınızı bekliyorum şimdiden teşekkürler...



  Alıntı
Bu mesajı beğenenler:
#5
Calismanizin son halini bilmediğimden kesin 1 set söylemem ama yukardaki kod If nz(Me.IlanTalepNu, "" = "" then kısmi hatalı yazılmış
Dogrusu
Visual Basic
  1. If nz(Me.IlanTalepNu, "" )= "" then


olacak
Not: bu aralar bilgisayara erişimim kısıtlı olduğundan ayrıntılı inceleyemedim



  Alıntı
Bu mesajı beğenenler:
#6
Sayın halily,
teşekkür ederim sorun sayenizde çözülmüştür.



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  Aynı Günleri Filtreleme Satir 7 670 30-04-2025, 09:33
Son Mesaj: Satir
  [RAPOR] Rapor Alt Formun A4 Sayfası Dolana Kadar Tekrar Tekrar Eklenmesi. tolgahanay8 2 361 01-04-2025, 22:26
Son Mesaj: tolgahanay8
  [RAPOR] Formdaki Aynı Rrsmı Baskı ön ızleme ıle Rapora Aktarma MHMTKY 2 451 11-09-2024, 13:09
Son Mesaj: dsezgin
  [SORGU] Farklı Sütunlardaki Aynı Verileri Saymak TheREDROSE 11 863 31-07-2024, 16:15
Son Mesaj: TheREDROSE
access-sql-18 [RAPOR] Kayıt Içerisindeki Miktar Alanındaki Sayı Kadar Rapora Ilgili Kaydı Rapora Kopyalama gurolk 12 1.007 29-07-2024, 12:01
Son Mesaj: dsezgin
  Aynı Kodlu Farklı Kayıtlara Izin Vermiyor ankaram 2 411 10-07-2024, 09:14
Son Mesaj: ankaram
  Access Formu üzerinden Sql Server Tabloya Nasıl Veri Kaydı Yapılır karacahil 4 698 15-02-2024, 12:10
Son Mesaj: halily
  Aramada Hep Aynı Veriler Geliyor ankaram 4 559 21-11-2023, 10:46
Son Mesaj: ankaram

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar):