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:


Visual Basic Code
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:


Visual Basic Code
Dim mesajVerildimi As Boolean


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


Visual Basic Code
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