Skip to main content

AccessTr.neT M.



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
Son Düzenleme: 13/05/2009, 19:27, Düzenleyen: mehmeser.
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.

Cevapla
Çözüldü #2
Son Düzenleme: 13/05/2009, 19:43, Düzenleyen: okileturc.
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.
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