Skip to main content

AccessTr.neT


Form açık değilse açıp raporu otomatik kapatma nasıl yapılır?

Form açık değilse açıp raporu otomatik kapatma nasıl yapılır?

Çözüldü #1
Merhaba,

Hazırladığım uygulamada sınıf listesi alırken parametreler frm_SinifListesi formunda verilmeli yoksa rapor hata mesajı veriyor.

Kullanımı kolaylaştırmak için rapora tıklandığında bu formu kontrol etmeli eğer açık değilse formu açmalı ve rapor kapatmalıyım.

Ben raporun açıldığında olayına şunları yazdım:
Kod:
'EĞER form açık değilse raporu kapat ve formu aç 13.05.2009 çarşamba
If SysCmd(acSysCmdGetObjectState, acForm, "frm_SinifListesi") <> 0 Then
'form açıktır
Else
MsgBox "Öncelikle sınıf ve şube seçimi yapmalısınız."
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "frm_SinifListesi"
DoCmd.OpenForm stDocName, , , stLinkCriteria
DoCmd.Close acReport, "rpr_SinifListesiResimli"
End If

Fakat rapor kendini kapatmıyor. Hata olarak ise olay anında bu komutu çalıştıramazsınız diyor.

Sadd Nasıl, raporu kapatabilirim ? Teşekkürler.
DoCmd.Close acReport, "rpr_SinifListesiResimli" yerine Cancel = True yazınca rapor da kapandı. Eğer yaptığımda bir hata varsa veya daha iyi bir yöntem varsa bekliyorum.
Son Düzenleme: 13/05/2009, 19:27, Düzenleyen: mehmeser.
Cevapla
Çözüldü #2
Ben ekteki modülü çok faydalı buluyorum
ve çok kullanıyorum

Kod:
Function IsLoaded(ByVal strFormName As String) As Boolean
' Returns True if the specified form is open in Form view or Datasheet view.
    Dim oAccessObject As AccessObject
    Set oAccessObject = CurrentProject.AllForms(strFormName)
    If oAccessObject.IsLoaded Then
        If oAccessObject.CurrentView <> acCurViewDesign Then
            IsLoaded = True
        End If
    End If
    End Function

Bu kodu, modüller bölümünde yeni kayıt açıp yapıştırın
ve kayıt edin

Sadece bu problemde değil artık nerede isterseniz açık form
kontrolü yaptıktan sonra eyleminizi gerçekleştirebilirsinz

If IsLoaded ( "kontrol_edilecekformadı" ) Then
Eylemi yap
Else
Vazgeç veya başka eylem yap
End If

Kolay gelsin
okileturc, 18-03-2009 tarihinden beri AccessTr.neT üyesidir.
Son Düzenleme: 13/05/2009, 19:43, Düzenleyen: okileturc.
Cevapla
Çözüldü #3
open da
cancel = true raporu kapatır.
Ayrıca isloaded fonksiyonu ile kontrol etmeniz daha kolay olacaktır. Nerdeyse standart bir fonksiyondur.
Bana işe yarayan bir müdür göster,sana dünyayı yerinden oynatayım.
                                                                                        Descartes


Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task