Wie zeigen Sie den Fortschritt auf der Statusleiste, wenn Sie eine Sequenz von queries in MS-Access

Ich habe ein makro in MS Access 2010 unter Windows 7 läuft eine Abfolge von sehr langsamen Make Table-und Update-Abfragen. Ich will es zu zeigen, auf die Statusleiste, welche Abfrage ausgeführt wird, als die übliche Meldung "Abfrage Ausführen" nicht geben der Abfrage den Namen.

Ich geschrieben habe folgenden VBA:

Function RunQueryAndReportStatusWithMsgBox(QueryName As String)
Dim RetVal As Variant
On Error GoTo ErrHandler

PutStatusBarBack
MsgBox "About to run query"
Application.Echo False, "Executing " & QueryName & " ..."
DoCmd.OpenQuery QueryName, acViewNormal, acEdit
On Error GoTo 0
Exit Function

ErrHandler:
Select Case Err
   Case 2501:    ' OpenQuery cancelled by the user pressing escape
      MsgBox "The OpenQuery action for query " & QueryName & " was cancelled by the user."
   Case Else:    ' Another error has occurred.
      ' Display the error number and the error text.
      MsgBox "Error # " & Err & " : " & Error(Err)
   End Select

' Put status bar back to normal.
PutStatusBarBack

End Function

Function PutStatusBarBack()

Dim RetVal As Variant

On Error GoTo ErrHandler

' Put status bar back to normal.
RetVal = SysCmd(5) ' not sure if I need this.
Application.Echo True, ""

On Error GoTo 0
Exit Function

ErrHandler:

' Display the error number and the error text.
MsgBox "Error # " & Err & " : " & Error(Err)

' Put status bar back to normal.
RetVal = SysCmd(5) ' not sure if I need this.
Application.Echo True, ""

End Function

Ich geschrieben habe, ein makro zu nennen RunQueryAndReportStatusWithMsgBox mit jeder Abfrage wiederum als argument, und dann rufe ich PutStatusBarBack am Ende des makro. Ich schalte Warnungen off am Anfang und am Ende. Das funktioniert wirklich gut - nur wie ich es will.

Aber ich will nicht werden, drücken Sie OK auf eine message-box jedes mal, wenn eine Abfrage gestartet wird. Wenn ich kommentiere die MsgBox Aussage, es funktioniert nicht mehr. Die Ergebnisse sind variabel. Manchmal zeigt es etwas in der status-bar, manchmal nicht. Bei mir lief es gerade jetzt, ich habe gerade den "Bereit" - Meldung überall, aber manchmal habe ich die gewünschte Meldung erscheint für einige, aber nicht alle Abfragen.

Habe ich versucht, mit RefreshDatabaseWindow statt MsgBox, aber das macht keinen Unterschied.

InformationsquelleAutor Zajonc | 2015-01-04

Schreibe einen Kommentar