[VBA] Alan Kontrollü Kaydetme Işlemi
#1

.rar   Deneme.rar (Boyut: 975,48 KB / İndirilme: 25)

Frm_Kasa ve Frm_KasaAlt isimli ilişkili formumuz mevcut. Frm_Kasa alanında bulunan AdıSoyadı alanı boş geçilmeyecek kontrol edilen alan olacak AltForm olan Frm_KasaAlt formunada veri giriş yapılıp yapılmadığını kontrol edilecek bu Formda Aylar ve AltUcret alanı kontrol edilecek ve bu alanlar dolu ise “Kaydet” tuşuna tıklanınca kaydetme işlemi yapacak ancak bu alanlardan herhangi biri boşsa uyarı verecek kayetme işlemini yapmayacak.
Yaklaşık 2 gündür uğraşıyorum ve internette ve sitemizde aramalar yapmama rağmen sorunu çözemedim.
ÖRENEK :
If (IsNull(.AdıSoyadı)) Then
            If (IsNull(Forms![Frm_Kasa]![Frm_KasaAlt].Form![Aylar])) Or (IsNull(Forms![Frm_Kasa]![Frm_KasaAlt].Form![AltUcret]))  Then
            MsgBox ("Veri Girişi Yapmadınız"), vbInformation, "BİLGİ!!!"
Mesaj verecek kaydetme işlemi yapmayacak
Tüm alanlar dolu ise
Kayıt işlemini yapacak
MsgBox ("Veri Girişi Kaydı Yapıldı"), vbInformation, "BİLGİ!!!"
Mesajını verecek ve formu kapatmadan kaydetme işlemini yapmış olacak
Before Update İle yapılan işlemlerde denedim ancak işime yaramadı . Sadece “Kaydet” Tuşu ile kaydetme işlemi yapılsın istiyorum.
Siz saygıdeğer üstadlarımdan bu konuda yardımlarını bekler teşekkür ederim.
Uygulama örneği ektedir.



  Alıntı
Bu mesajı beğenenler:
#2
Merhaba Ahmet
Kaydet butonunuzun Click olayına aşağıdaki kodu girin

Visual Basic
  1. Private Sub Kaydet_Click()
  2. If (Not IsNull(Forms![Frm_Kasa]![AdıSoyadı])) Then
  3.            If (IsNull(Forms![Frm_Kasa]![Frm_KasaAlt].Form![Aylar])) Or (IsNull(Forms![Frm_Kasa]![Frm_KasaAlt].Form![AltUcret])) Then
  4.            MsgBox ("Veri Girişi Yapmadınız"), vbInformation, "BİLGİ!!!"
  5.            Exit Sub
  6.        Else
  7.        DoCmd.RunCommand acCmdSaveRecord
  8.        MsgBox ("Veri Girişi Kaydı Yapıldı"), vbInformation, "BİLGİ!!!"
  9.        End If
  10.        Else
  11.        MsgBox ("Ad Soyad Alanı Zorunludur"), vbInformation, "BİLGİ!!!"
  12.        End If
  13. End Sub



Ayrıca Aylar alanının çıkıldığında olayında sondan 2. ve 3. satırını silin.



  Alıntı
Bu mesajı beğenenler:
#3
(24-05-2023, 23:51)onur_can demiş ki: Merhaba Ahmet
Kaydet butonunuzun Click olayına aşağıdaki kodu girin


Ayrıca Aylar alanının çıkıldığında olayında sondan 2. ve 3. satırını silin.
Üstadım öncelikle emeğine sağlık;

Dediğin gibi yaptım üstadım. Ancak Alt formda "Enter" tuşuna basarak ilelendiği için otomatikman ücret alanından çıkınca altformda ikinci satıra geçilince kodun

"If (IsNull(Forms![Frm_Kasa]![Frm_KasaAlt].Form![Aylar])) Or (IsNull(Forms![Frm_Kasa]![Frm_KasaAlt].Form![AltUcret])) Then

            MsgBox ("Veri Girişi Yapmadınız"), vbInformation, "BİLGİ!!!" " bu kısmını tekrar çalıştırdığından yani Aylar ve Ücret alanını tekrar kontrol ettiği için

Veri girişi yapmadınız uyarısını tekrar vermektedir. Ancak buna şu şekilde bir çözüm buldum AltUcret alanının  Odaklanma Sonlandığında olayını aşağıdaki gibi yaptım

Private Sub AltUcret_LostFocus()
If IsNull(Me.Aylar) Then
Me.Aylar.SetFocus ': Exit Sub
MsgBox "İlgili Ay adını boş geçemezsiniz.", 48, "Kayıt İşlemi"
Else
Me.AltMuhKoduFK.SetFocus
End If
End Sub

 Bu şekilde yapınca "Enter" tuşuna basılınca AltUcret alanına gelince imleç AltMuhKoduFK.SetFocus a odaklandığından altsatıra geçmediği için sorunu bu şekilde çözdüm.

Ancak siz değerli üstadlarımın daha efektif bir çözümü var ise ona da hayır demem doğrusu.

Üstadım ayrıca  Kaydet butonuna yazdığın bu koda benzer bir kodda;

Kullanıcı kaydet butonuna basmadan yanlışlıkla "KAPAT" butonuna başarsa kayıt;

"KAPAT" butonuna aynı alanları kontrol edecek alanlar boşsa uyaracak formu kapatmayacak bir kod mümkünmüdür.

Teşekkür ederim.



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  Veri Aktarma Işlemi halil.tefci 4 169 28-11-2023, 07:56
Son Mesaj: halil.tefci
  [VBA] Bir Tabloda Alan Türü Uzun Metin Olan Iki Ayrı Alanı Karşılaştırmak abkbek 13 299 10-11-2023, 22:26
Son Mesaj: abkbek
  [SORGU] Farklı Tablolarda Yer Alan Satış Bilgilerini Toplama Sorgusu Lidervet 1 143 09-11-2023, 00:54
Son Mesaj: dsezgin
  Formu Pdf Olarak Kaydetme snapper 8 255 01-11-2023, 22:59
Son Mesaj: dsezgin
  Listede çıkarma Işlemi m_demir 6 185 14-09-2023, 18:42
Son Mesaj: m_demir
  [VBA] Kayıt Iptali: Kayıt Iptal Tablosuna Ekle, Kayıdı Sil Işlemi programmer67 6 309 21-07-2023, 10:40
Son Mesaj: onur_can
  Sorgu Işlemi Sonunda Veri Yoksa Bulunduğu Hücreye 0 Olarak Otomatik Değer Verme ofbayoglu61 12 405 21-07-2023, 10:09
Son Mesaj: onur_can
  [FORM] İLİŞKİSİZ FORMDAN TABLOYA VERI KAYDETME moskovic 24 20.285 06-07-2023, 12:11
Son Mesaj: dsezgin

Foruma Git:


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