[FONKSiYON] Kaydet Butonu Kontrolü
#1
Saygıdeğer üstadlarım Ekteki VT de Kapat Butonu ve ÇIKIŞ butonu ile ilgili olarak forumdaki birçok bilgiyi inceledim ve vt ye uyarladım ancak bir türlü istediğimi yapamadım.Siz değerli üstadlarımın yardımlarını beklerim.

Sorum şudur VT ye veri girişi yapıpta kaydet butonuna tıklamadan; ÇIKIŞ butonuna basınca "veriyi kaydetmediniz uyarası verip" işlemi kaydetmeyi uyarması ve kaydet tuşuna başmadan forumdan çıkış yaptırmaması. Ancak Kaydet butonuna basılıp ta kayıt işlemi yapılmış ise ÇIKIŞ butonuna tıklanınca uyarı vermeden formu kapatması.

Kaydet butonu olay yordamında doğal olarak Evet/Hayır sorusu soracaktır. Yani Kaydet butonuna basınca verilen(Evet/Hayır-Kaydet butonuna tıklanınca Cevabın Hayır olması durumunda veriyi kaydetmemesi gerekmektedir.) cevap ne olur ise olsun "ÇIKIŞ butonuna tıklanınca kaydet butonuna basılıp başılmadığını; basılmış ise forumdan çıkılmasını, eğer basılmamış ise formu kapatmaması muhakkak kaydetme işlemini yaptırması gerekmektedir.

Ayrıca  "GÜNLÜK MEVCUT FORMUALT"  formuna giriş yaılmamış ise uyarmasının sağlanması.

Saygı değer hocalarım sizlere şimdiden teşekkürlerimi sunarım.


.rar   Yemek Verme Sayısı.rar (Boyut: 85,48 KB / İndirilme: 73)



  Alıntı
Bu mesajı beğenenler:
#2
yalnız sizin çalışmanızda alt form var ve alt forma veri ekleyebilmek için ister istemez üst tabloya kayıt eklemek zorunlu -ki önceki konunuzda yaşanan sorun oydu- bu durumda yapılabilecek şey çıkışta size soru sorması ve verilen cevaba göre hem üst hem alt kayıtları silmesi olabilir yada alt forma giriş yapmaya kalktığınızda önce kayıt eklensin mi diye sorması sağlanabilir üst kayıt eklenir ama alt formdaki yani diğer tablodaki verilerin kaydedilip edilmemesinin kontrolü nasıl sağlanacak?
yani sorunuzun biraz daha açıklanmaya ihtiyacı var bence.
1 - onayı hangi tablodaki veri için istiyorsunuz (üstformdaki MevcutA tablosu için mi yoksa alt formdaki MevcutAlt tablosu için mi)?
2 - alt tabloya kayıt ekleyebilmek için üst tablodaki veri en azından bir kere kaydedilmeli bu kayıt işlemi yapıldı diyelim bu durum da alt tabloya verileri eklediniz üst tabloda da bazı verileri değiştirdiniz, çıkarken kaydedelim mi diye soracak ve siz hayır dediniz bu durumda üst tablodaki veri değişimi iptal edilebilir  ama alt tabloda eklediğiniz yada değiştirdiğiniz verilere ne olacak? onların iptali söz konusu olamaz en fazla üst tablodaki veri ilk defa eklenmişse alt tablodaki ilgili veriler silinebilir.
dilerim aşağıdaki kod işinize yarar üstformdaki veri değişikliği ile ilgili kontroldür alt form eklediğiniz kayıtlarla ilgili bir işlem yapmaz eğer alt kayıtlarla da ilgili bir kontrol istiyorsanız durum daha karışık olur farklı işlemler eklenmesi gerekebilir
formun modülüne
Option Compare Database
Option Explicit

satılarının altına aşağıdaki satırı ekleyin
Visual Basic
  1. Dim KytOnay As Boolean


form geçerli olduğunda ve kayıt ekleme öncesi olayı eklendi
Visual Basic
  1. Private Sub Form_Current()
  2.    KytOnay = False
  3. End Sub
  4.  
  5. Private Sub Form_BeforeUpdate(Cancel As Integer)
  6.    If MsgBox("Ltforma veri eklemek için önce kaydetmelisiniz. Kaydetmek istediğinize emin misiniz?", vbQuestion + vbYesNo, "Soru") = vbYes Then KytOnay = True Else KytOnay = False
  7.    If KytOnay = False Then Me.Undo
  8. End Sub


kaydet butonunun kodu biraz değişti
Visual Basic
  1. Private Sub Kaydet_Click()
  2.    If MsgBox("Kaydetmek istediğinize emin misiniz?", vbQuestion + vbYesNo, "Soru") = vbYes Then
  3.        KytOnay = True
  4.        Me.Dirty = False
  5.        KytOnay = False
  6.    Else
  7.        Me.Undo
  8.        MsgBox "Kayıtlarda değişiklik yapılmamıştır!", vbInformation, "BİLGİ!!!"
  9.    End If
  10. End Sub





  Alıntı
Bu mesajı beğenenler:
#3
Halil hocam; forma yeni kayıt butonu ile kayıt ekledik, alt formada ilgili sayıları girdik. KAYDET butonuna basıp kayıt işlemini yaptık. Çıkış butonuna basınca kaydetme işlemi yapıldığı için doğrudan fordan çıkış yapılacak. Şayet forma veriler girilip KAYDET butonuna basmadan ÇIKIŞ butonuna basınca "Kayıt girişi yaptınız ama kaydetmediniz" vb uyarı verecek vbYesNo da Evet de kayıt yapacak Hayır da kaydetmeden çıkacak.

Yani kısacası benim bilmediğim ama siz değerli hocalarımın altından kalkacağını düşündüğüm "ÇIKIŞ" tuşuna basılınca "KAYDET" tuşuna basılıp basılmadığının tesbitini yapan bir kod ile sorunun çözüleceği kanaatindeyim.

Verdiğiniz kodları Vt ye uyarladım. Ektedir. Bir kayıt girip test(Mevcut Tarihi yinelemesiz tarih olmalıdır) eder iseniz ne demek istediğimi daha iyi anlayacaksınız.


.rar   Yemek Verme Sayısı.rar (Boyut: 86,98 KB / İndirilme: 60)



  Alıntı
Bu mesajı beğenenler:
#4
(09-07-2020, 13:06)Ahmet51 demiş ki: Halil hocam; forma yeni kayıt butonu ile kayıt ekledik, alt formada ilgili sayıları girdik. KAYDET butonuna basıp kayıt işlemini yaptık. Çıkış butonuna basınca kaydetme işlemi yapıldığı için doğrudan fordan çıkış yapılacak. Şayet forma veriler girilip KAYDET butonuna basmadan ÇIKIŞ butonuna basınca "Kayıt girişi yaptınız ama kaydetmediniz" vb uyarı verecek vbYesNo da Evet de kayıt yapacak Hayır da kaydetmeden çıkacak.

Yani kısacası benim bilmediğim ama siz değerli hocalarımın altından kalkacağını düşündüğüm "ÇIKIŞ" tuşuna basılınca "KAYDET" tuşuna basılıp basılmadığının tesbitini yapan bir kod ile sorunun çözüleceği kanaatindeyim.

Verdiğiniz kodları Vt ye uyarladım. Ektedir. Bir kayıt girip test(Mevcut Tarihi yinelemesiz tarih olmalıdır) eder iseniz ne demek istediğimi daha iyi anlayacaksınız.

sn Ahmet,


veritabanına kayıt kontrol adında bir alan ekle ve kontrolleri buradan yapabilirsin.

sen form üzerinde iken kaydet yada çıkış butonuna basınca sana sorsun kaydetmek istiyormusun, sen evet dersen , kayıt kontrol alanında kaydedildi yazısı bulunmayanlara kaydedildi yazsın,
kaydetmek istemeden çıkmak istersen de  kaydetmek istemiyrum seçersin yine kayıt kontrol alanında kaydedildi yazısı bulunmayan kayıtları siler.



  Alıntı
Bu mesajı beğenenler:
#5
kapat butonunun kodunu aşağıdaki şekilde değiştirir misiniz?
Visual Basic
  1. If MsgBox("Kaydetmek istediğinize emin misiniz?", vbQuestion + vbYesNo, "Soru") = vbYes Then
  2. KytOnay = True
  3. Me.Dirty = False
  4. KytOnay = False
  5. Else
  6. Me.Undo
  7. DoCmd.Close
  8. End If





  Alıntı
Bu mesajı beğenenler:
#6
(09-07-2020, 13:06)Ahmet51 demiş ki: "ÇIKIŞ" tuşuna basılınca "KAYDET" tuşuna basılıp basılmadığının tespitini yapan bir kod ile sorunun çözüleceği kanaatindeyim.
bu kısımda zaten sorun yok halledilir asıl sorun ilgili kayda ait alt formdaki kayıtlar.
onlar nasıl kontrol edilecek? Husem beyin belirttiği gibi alt formda kullanılan tabloya kontrol alanı eklenebilir bu şekilde onaylanmamış kaydın silinmesi sağlanabilir ama amaç alt tablodaki verilerde yapılan değişikliklerin kaydedilip edilmemesi ise bu yöntem pek kullanılabilir olmaz.



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  [FORM] form klasör içinde dosya kontrolü obaysal42 4 2.179 29-12-2023, 10:24
Son Mesaj: burhanb
  Boş Alan Kontrolü (taruz) : Rapor Butonu prtkl 5 271 31-05-2023, 22:48
Son Mesaj: hnakis
  Başlıkları Aynı Olmayan EXcel Tablosunu Dosya Bul Butonu Ile Accese Veri Almak snapper 1 184 17-12-2022, 03:13
Son Mesaj: dsezgin
  Form Yeni Kayıt Ekle Butonu SümeyyeK 1 207 17-12-2022, 03:07
Son Mesaj: dsezgin
  Boşluk Kontrolü Ve Tam Kayıt benuva 83 2.297 11-12-2022, 18:43
Son Mesaj: halily
access-sql-18 Access'e Dosya Bul Butonu Ile EXcel'den Veri çekme snapper 2 273 06-12-2022, 11:51
Son Mesaj: snapper
  Duruma Göre Kaydı Yapılan Veya Yapılmayan Metin Kutusu Boş Ise Kaydet Butonu Hata Ve tarkanaykın 2 288 26-04-2022, 23:53
Son Mesaj: tarkanaykın
  Resmi Farklı Kaydet Satir 2 235 03-07-2021, 18:33
Son Mesaj: Satir

Foruma Git:


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