Bir kaydın bir alt form içeren bir formdan tabloya kaydedilmesi, ancak butonun tıklanmasından sonra


0

Access'e yeni gelen biriyim, bu yüzden henüz bunu çözemedim. Googling’ten sonra aşağıdaki kodu buldum, ancak bununla ilgili sorunlar var.

Bir alt form içeren bağlı bir formum var. Kullanıcının istediği forma bir düğme yerleştirdim var Kaydı kaydetmek için tıklayın.

Aşağıdaki kod, düğmeye tıklandığında kaydı kaydetmez. Tamam, alt forma tıklattığımda bir mesaj kutusu açıldı, tamam mı, ancak kutudan "X" alıp "tamam" ı tıklayıp kayıttan kurtardı.

Herhangi bir yardım takdir edilecektir. Bu kodu değiştirmek veya tamamen farklı bir kod uygulamak.

Option Compare Database
Option Explicit
Dim tfAllowSave As Boolean

Private Sub btnSave_Click()
   tfAllowSave = True
   If Me.Dirty Then Me.Dirty = False
End Sub

Private Sub Form_BeforeUpdate(Cancel As Integer)
   If tfAllowSave = False Then
      Cancel = False
      MsgBox "Do you want to save the record?"
   End If
   tfAllowSave = False
End Sub  

Burada birkaç sorun var. Kirli değişkeni değiştirmek yerine formu temizleyin. Msgbox'ın evet / hayır seçeneğine sahip olması ve ardından bunu bir değişkene kaydetmeniz gerekir. Daha sonra bu değişkenin = vbyes / vbno olup olmadığını kontrol etmek ve istediğiniz gibi yapmak için bir if ifadesini kullanabilirsiniz. Örneğin, hayır'ı tıklarlarsa, iptal et = true
Lister

Yorumlarınız için teşekkürler. Yukarıdaki kodu kopyalarsam ve yeni kayıt işlemek, silmek ve kaydetmek için düğme sihirbazını kullanırsam, ihtiyacım olanın çoğunu gerçekleştirir. Ana forma yazdığınız bilgileri korurken, bir alt forma tıkladığınızda ana formun tasarruf etmesini engellemenin bir yolu olmadığını okudum.
Tony Tambe

Bu doğru, alt forma tıkladığınızda, deneyecek ve ana formdaki bilgileri kaydedeceksiniz. Kaydı kabul etmeniz veya iptal etmeniz ve ana formdaki bilgileri silmeniz gerekir. Ben de aynı sorunu yaşadım!
Lister
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.