Unsere Webseiten benötigen JavaScript. Dies scheint in Ihrem Browser jedoch deaktiviert zu sein.

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

Parameterabfragen per VBA anpassen und ausführen

Access 365 2021 2019 2016 2013 2010

FRAGE : Ich möchte die Anzahl der Abfragen in meiner Access-Datenbank reduzieren und erstelle dazu verschiedene Parameterabfragen. In einigen Fällen wird die Ausführung programmatisch gestartet. Ich möchte zum Beispiel per VBA eine Abfrage ausführen, bei der verschiedene Parameter definiert sind und Werte dafür an die Abfrage übergeben werden müssen. Dies soll abhängig von Inhalten einzelner Variablen erfolgen. Wie gehe ich hier am besten vor?

H. Weber

ANTWORT Nutzen Sie zum Beispiel Anweisungen wie die folgenden:

Dim db As DAO.Database
dim qd As DAO.QueryDef
dim rs As DAO.Recordset

Set db = CurrentDb()
Set qd = db.QueryDefs("Abfragename")

If Var_1 = 1 Then
  qd.Parameters(1)= "ABC"
ElseIf Var_1 = 2 Then
  qd.Parameters(1)= "DEF"
ElseIf Var_1 = 3 Then
  qd.Parameters(1)= "GHI"
End If

If Var_2 = True Then
  qd.Parameters(2)= Now
End If

"Abfragename" ersetzen Sie durch den Namen der Abfrage, die Sie per VBA ausführen bzw. anpassen möchten. Auf die einzelnen Parameter greifen Sie dann abhängig von den Inhalten der Variablen über die Auflistung "Parameters" wie oben gezeigt zu und weisen ihnen die gewünschten Werte zu.

Soll das Abfrageergebnis anschließend nur in der Datenblattansicht angezeigt werden, nutzen Sie folgende Anweisung:

qd.Execute

Um das Abfrageergebnis als Recordset zu verarbeiten, wäre folgende Anweisung auszuführen:

Set rs = qd.Execute()

Wenn ein auf der Abfrage basierender Bericht geöffnet werden soll, geschieht dies mit folgender Anweisung:

DoCmd.OpenReport "Bericht"

"Bericht" ist der Name des Berichtes, der auf der Abfrage basiert.