Ereignisreihenfolge in Formularen (Access 2000)

31/05/2008 - 12:20 von Michael König | Report spam
Hallo Newsgroup,

ich versuche mich zur Zeit an der Erstellung eines
Archivierungs-Assistenten (na ja, ein paar nacheinander aufgerufene
Dialog-Formulare, aktuell sind es 6). In den ersten 5 Formularen werden
ein paar Fragen gestellt und Eingaben angefordert, im 6. und letzten
soll die eigentliche Archivierung gestartet werden. Die Abarbeitung
klappt bis zum 6. Formular prima, nur das 6.Formular wird nicht
angezeigt. Ich habe den Aufruf der Archivierung in den Ereignissen Open,
Load und GotFocus des 6. Formulars getestet, immer wird die Archivierung
gestartet, das Formular selber aber wird nicht angezeigt. Erst wenn die
Archivierung beendet ist, wird das Formular angezeigt. Was muss ich tun,
damit das Formular bereits vor dem Start der Archivierung angezeigt wird?

Danke für Euren Rat und Gruß
Michael König

Hier der Beispiel-Code für das Open-Ereignis:

'--
Option Compare Database
Option Explicit

Private strOpenArgs As String
Private strArchivName As String
Private strBisZuDatum As String

'--
Private Sub Form_Open(Cancel As Integer)
'--

Dim arrCoords() As Long
Dim arrOpenArgs() As String

' Abholen der vorher abgefragten Eingaben
If IstLeer(Me.OpenArgs) Then
cmdZurueck_Click
Exit Sub
Else
strOpenArgs = Me.OpenArgs
arrOpenArgs = Split(strOpenArgs, ";")
strArchivName = arrOpenArgs(0)
strBisZuDatum = arrOpenArgs(1)
End If

' Zentrieren des Formulars
arrCoords() = CenterForm(Me)
DoCmd.MoveSize arrCoords(0), arrCoords(1)
ReDim arrCoords(0) ' Speicherplatz wieder frei geben (?)

Me!lblKopf.Caption = strArchivName & vbCrLf & _
"bis zum " & strBisZuDatum
Me!cmdZurueck.Visible = False
DoEvents

' Hier erfolgt der Aufruf der eigentlichen Archivierung
ExecArchivierung strArchivName, strBisZuDatum

Me!lblZusammenfassung.Caption = "Das war's"
Me!cmdWeiter.Caption = "&Fertig"
Me!cmdWeiter.Enabled = True

End Sub

'--
 

Lesen sie die antworten

#1 Mark Doerbandt
31/05/2008 - 12:24 | Warnen spam
Hallo, Michael,

Michael König:

Hier der Beispiel-Code für das Open-Ereignis:

'--
Option Compare Database
Option Explicit

Private strOpenArgs As String
Private strArchivName As String
Private strBisZuDatum As String

'--
Private Sub Form_Open(Cancel As Integer)
'--

Dim arrCoords() As Long
Dim arrOpenArgs() As String

' Abholen der vorher abgefragten Eingaben
If IstLeer(Me.OpenArgs) Then
cmdZurueck_Click
Exit Sub
Else
strOpenArgs = Me.OpenArgs
arrOpenArgs = Split(strOpenArgs, ";")
strArchivName = arrOpenArgs(0)
strBisZuDatum = arrOpenArgs(1)
End If

' Zentrieren des Formulars
arrCoords() = CenterForm(Me)
DoCmd.MoveSize arrCoords(0), arrCoords(1)
ReDim arrCoords(0) ' Speicherplatz wieder frei geben (?)

Me!lblKopf.Caption = strArchivName & vbCrLf & _
"bis zum " & strBisZuDatum
Me!cmdZurueck.Visible = False
DoEvents

' Hier erfolgt der Aufruf der eigentlichen Archivierung
ExecArchivierung strArchivName, strBisZuDatum

Me!lblZusammenfassung.Caption = "Das war's"
Me!cmdWeiter.Caption = "&Fertig"
Me!cmdWeiter.Enabled = True

End Sub

'--



leider steht da nicht, wie das Formular aufgerufen wird. So ins Blaue:
baue da mal ein Me.Visible = True ein.

Gruss - Mark

Informationen fuer Neulinge in den Access-Newsgroups unter
http://www.doerbandt.de/Access/Newbie.htm

Bitte keine eMails auf Newsgroup-Beitràge senden.

Ähnliche fragen