News & Tipps zu Microsoft Access

Lesen Sie hier einige der besten Beiträge aus SmartTools Access Weekly sowie ausgewählte Inhalte anderer E-Mail-Newsletter von SmartTools Publishing rund um Microsoft Access.

Beitrag aus SmartTools Access Weekly

Abfrageergebnis mit Access anzeigen und warten bis die Ansicht geschlossen wurde

Access 365 2024 2021 2019 2016 2013 2010

FRAGE Ich möchte in meiner Datenbank per VBA das Ergebnis einer Abfrage anzeigen lassen und dann mit der Ausführung der Prozedur fortfahren, sobald das Fenster geschlossen wird. Es handelt sich bei dem Abfrageergebnis in der Regel um mehrere Datensätze, aber ich denke, dass eine MsgBox dazu am besten geeignet wäre. Oder haben Sie eine andere Idee, wie ich das Schließen des Fensters überwachen kann? Mit welchen VBA Anweisungen komme ich weiter?

O. Ludwig

ANTWORT Von einer Anzeige der Abfrageergebnisse per MsgBox ist abzuraten, da unter Umständen aufgrund von Beschränkungen nicht alle Datensätze angezeigt werden könnten und außerdem die Höhe der MsgBox zu groß sein könnte, so dass die Schaltflächen nicht mehr sichtbar sind. Besser wäre folgende Lösung:

  1. Speichern Sie die folgende Prozedur in einem beliebigen VBA-Modul:
Sub ShowQueryAndWait(strQuery As String)

  On Error Resume Next
  DoCmd.OpenQuery strQuery
  While SysCmd(acSysCmdGetObjectState, _
               acQuery, strQuery) = acObjStateOpen
    DoEvents
  Wend

End Sub
  1. Lassen Sie die Abfrage dann z.B. wie folgt anzeigen:
..... 'Ihre VBA-Anweisungen
ShowQueryAndWait "Liste der aktuellen Artikel"
..... 'Mehr VBA-Anweisungen

Die Abfrage wird daraufhin in der normalen Datenblattansicht angezeigt und die Prozedur wartet, bis die Abfrage wieder geschlossen ist, erst dann werden weitere Anweisungen ausgeführt.