Skip to main content

AccessTr.neT


Msgbox Tamam Tıklayınca Form Kapansın

Msgbox Tamam Tıklayınca Form Kapansın

Çözüldü #1
Merhaba,

Tbl_menu'ye bağlı Frm_menu adında formum var. Bu formun üzerindeki komut düğmesi ile frm_deneme adlı formu açıyorum. Frm_menu formunun üzerindeki adı alanındaki veriyi frm_deneme formunun Caption na yazıyıyor. Eğer Frm_menu adındaki formun adı alanı boşsa Caption na "Boş" yazıyor. Sorum eğer frm_Deneme adlı formun Caption'u "Boş" ise msgbox tamam tıklayınca frm_deneme adlı form kapatılsın. Bunun için bir kod yazmaya çalıştım hata veriyor. Bu konuda yardımlarınızı rica ediyorum.
Saygılarımla.

frm_deneme formunun kodları
Kod:
Private Sub Form_Current()
On Error Resume Next
   
Me.Caption = Nz(DLookup("adı", "tbl_Menu", "ID=" & Nz(Me.ID.Value, 0)), "Boş")
   If Me.Caption = "Boş" Then

  If MsgBox("kayıt yok, form kapatılacak", vbApplicationModal) = vbOK Then
Me.Caption = "Boş"

   DoCmd.Close
   End If
  End If
End Sub

.zip DenemeVT.zip (Dosya Boyutu: 81,23 KB | İndirme Sayısı: 8)
Cevapla
#2
Örneğinize çok detaylı bakamadım ama sorun hata mesajında belirttiği gibi formunuz ile ilgili işlemler daha bitmediğinden hata alıyorsunuz. Belki daha iyi bir yol vardır ancak benim aklıma ilk gelen Timer kullanmak oldu nedense. Şu şekilde çözüm üretebilirsiniz.

frm_Deneme isimli formun özelliklerinden Süreölçer Aralığını 100 yapın. Daha sonra yine frm_Deneme özelliklerinden Zaman Dolduğunda olayına bir kod yazın. kod şu şekilde olacak:


Private Sub Form_Timer()

   If (mesajVerildimi = False) Then
       
       Me.Caption = Nz(DLookup("adı", "tbl_Menu", "ID=" & Nz(Me.ID.Value, 0)), "Boş")
       
       If Me.Caption = "Boş" Then
   
           If MsgBox("kayıt yok, form kapatılacak", vbApplicationModal) = vbOK Then
           
               Me.Caption = "Boş"
               mesajVerildimi = True
               
           End If
           
      End If
     
   Else
   
       DoCmd.Close acForm, "frm_Deneme"
   
   End If
   
End Sub


Bu arada frm_Deneme formunun Geçerli Olduğunda olayındaki tüm kodları silmeniz lazım. Ayrıca form genelinde geçerli olması için bir değişken tanımlamalısınız. Şu şekilde olacak:


Dim mesajVerildimi As Boolean


bu değişkeni hemen satırların altına ekleyebilirsiniz:


Option Compare Database
Option Explicit

artık istediğiniz gibi bir sonuç elde edebilirsiniz.
AccessTr.Net teknik konular içeren bir sitedir. Bu tip sitelerde en iyi şekilde yardım alabilmeniz için Site Kurallarını mutlaka okumanız ve buna göre hareket etmeniz lazım.
Cevapla
#3
Merhaba,
Sn. alpeki99 hocam, işlem tamam istediğim işlemi yaptı. Elinize sağlık çok teşekkürederim.
Saygılarımla.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task