Abrufen von Abfrageergebnissen in Access mit VBA.
Wenn Sie wissen, wie Sie die Ergebnisse einer Microsoft Access-Abfrage lesen, können Sie Ihre Access-Anwendung dynamischer gestalten. Access ist Teil der Microsoft Office-Suite und wird zum Erstellen relationaler Datenbanken verwendet. Visual Basic for Applications (VBA) kann in Access verwendet werden, um Windows-Anwendungen zu erstellen und Datenbankdaten abzurufen. Eine Abfrage wird mithilfe von SQL-Anweisungen (Structured Query Language) erstellt, um Informationen von einer Datenbank anzufordern.
Schritt 1
Starten Sie Microsoft Office Access 2007 und wählen Sie "Leere Datenbank" und klicken Sie dann auf "Erstellen". Klicken Sie auf "Datenbanktools" und wählen Sie "Visual Basic". Klicken Sie auf das Feld "Einfügen" und wählen Sie "Modul".
Video des Tages
Geben Sie "Private sub readQueryResults" ein und drücken Sie "Enter", um eine neue Subroutine zu erstellen.
Schritt 2
Geben Sie Folgendes ein, um Variablen zu deklarieren, die Sie zum Lesen der Abfrageergebnisse verwenden:
Dim RecordSt As Recordset Dim dBase As Database Dim stringSQL As String Dim rCnt As Integer
Schritt 3
Geben Sie Folgendes ein, um die Tabelle "CityTbl" zu erstellen:
stringSQL = "CREATE TABLE CityTbl (City TEXT(25), State TEXT(25));" DoCmd. RunSQL (stringSQL)
Schritt 4
Geben Sie Folgendes ein, um Ihrer Tabelle "CityTbl" zwei neue Datensätze hinzuzufügen:
stringSQL = "INSERT INTO CityTbl ([City], [State] ) " stringSQL = stringSQL & "VALUES ('Fort Worth', 'Texas');" DoCmd. SetWarnings False DoCmd. RunSQL (stringSQL)
stringSQL = "INSERT INTO CityTbl ([City], [State] ) " stringSQL = stringSQL & "VALUES ('Dallas', 'Texas');" DoCmd. SetWarnings False DoCmd. RunSQL (stringSQL)
Schritt 5
Geben Sie Folgendes ein, um Ihre Abfrage zu definieren und Ihr Recordset zu öffnen:
stringSQL = "SELECT CityTbl.* FROM CityTbl;" Setze RecordSt = dBase. OpenRecordset (stringSQL)
Schritt 6
Geben Sie Folgendes ein, um eine "For-Schleife" zu erstellen und Ihre Abfrageergebnisse über ein Meldungsfeld anzuzeigen:
RekordSt. MoveFirst For rCnt = 0 To RecordSt. RecordCount MsgBox (RecordSt. Fields("City").Value & ", " & RecordSt. Fields("State").Value) RecordSt. MoveNext Next rCnt
Drücken Sie "F5", um das Unterprogramm auszuführen.