07. marts 2004 - 22:47Der er
5 kommentarer og 1 løsning
Rapport on close event
Hej
Jeg har en rapport, som har en søgeform tilknyttet. Jeg åbener formen i report_open I formen laves diverse filtreringer af rapporten's data Menningen er så at lukke formen i report_close, MEN denne hændelse aktiveres hver gang jeg skifter filter på rapporten.
Er det en bug - mener ikke det var sådan i 97'eren jeg bruger 2003.
Jeg søger en løsning så jeg kan lukke min søgeform når rapporten lukkes og ikke hvergang der skiftes filter i rapporten
En løsning kunne være at bruge timeren på formularen; Hvis du f.eks. sætter timerinterval til 500 (=½ sekund) og lagde denne kode på vedTimerudløb: If Currentproject.Allreports("Dinrapport").IsLoaded = False then Docmd.Close acform, Me.name
Du vil da kunne opleve en forsinkelse på op til ½ sekund, men det er vel ok. I Princippet ville du kunne risikere at timerudløbet skete præcis samtidig med at brugeren lavede en filtrering. Men det ville du kunne undgå ved på rapportens OnLoad-hændelse at lægge denne kode: DoCmd.OpenForm "frm_filterRpt_statestikBryder" Forms!frm_filterRpt_statestikBryder.Timerinterval = 500
Jeg har ikke afprøvet eksemplet, men mener, at det burde holde.
Ja - Lige nu har jeg en hændelse onActivate på min menu form der lukker formen hvis den er åben. Jeg syntes bare det burde virke som jeg har beskrevet herover
Du kan sætte en boolean ind som True før rpt.FilterOn = True, og sætte den til False ved Report_Activate, og så kun lukke formularen, hvis din boolean er false.
Private Sub Report_Activate() Form_frm_filterRpt_statestikBryder.Hekla = False DoCmd.Maximize End Sub
Private Sub Report_Close() If Form_frm_filterRpt_statestikBryder.Hekla = False Then DoCmd.Close acForm, "frm_filterRpt_statestikBryder", acSaveNo End If End Sub
og min form
Option Compare Database Option Explicit Public Hekla As Boolean
Private Sub btnOk_Click() Dim sWhere As String
Dim rpt As Report
Set rpt = Reports("Kopi af rpt_Point_Detaljer")
If Me.comboBryder <> -1 Then sWhere = "bryderid = " & Me.comboBryder End If
If Len(sWhere) > 1 And Me.comboSaeson <> -1 Then sWhere = sWhere & " AND " End If
If Me.comboSaeson <> -1 Then sWhere = sWhere & "[sæson] = " & Me.comboSaeson End If x = True rpt.filter = sWhere rpt.FilterOn = True End Sub
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.