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: 9)



  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
  [VBA] Birden Fazla Resimi Aynı Anda Taşıma Ve Tabloya Link Alma serdem48 29 582 31 dakika önce
Son Mesaj: serdem48
  Eğer Ve Ve Fonksiyonunun Aynı Anda Iç Içe Kullanılması demir68 1 54 25-10-2019, 21:50
Son Mesaj: dsezgin
  Aynı Tablo Içerisindeki Kayıtları Karşılaştırmak M_Kemal_Askeri 1 41 25-10-2019, 00:58
Son Mesaj: M_Kemal_Askeri
  Aynı Sütunlarda Sayma Sorgusu HilalAccess 35 825 04-09-2019, 17:44
Son Mesaj: dsezgin
  aynı alanda birden fazla parametre değeri girmek. sertachizir 2 273 17-06-2019, 08:26
Son Mesaj: sertachizir
  [SORGU] Sorguda Aynı olan isimleri birleştirme haziran4 6 251 23-04-2019, 13:11
Son Mesaj: haziran4
  [FONKSiYON] Tablodaki son 3 kaydı çağırma abahceci 15 2.397 08-04-2019, 01:54
Son Mesaj: abahceci
  [FORM] ilişkisiz metin kutusu kaydı tabloda görünmüyor anno55 6 338 27-02-2019, 16:36
Son Mesaj: anno55

Foruma Git:


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