Wie die Parameter aus Excel an Microsoft Query übergeben

July 19

Wie die Parameter aus Excel an Microsoft Query übergeben

Das wissen, das Übergeben von Parametern aus Microsoft Excel zu einer Abfrage in Microsoft Office Access kann Ihre Datenbankanwendung dynamischere darstellen. Excel ist ein Tabellenkalkulations-Programm, das häufig zur Speicherung und Analyse große Datenmengen. Der Zugang ist ein relationales Datenbank-Managementsystem zum Entwerfen von lokaler Datenbanken verwendet. Visual Basic für Applikationen (VBA) ist eine Programmiersprache, die zum Automatisieren von Routineaufgaben wie die Übergabe von Parametern aus Excel in Access verwendet. Eine Abfrage wird zum Abrufen von Informationen aus Datenbanktabellen.

Anweisungen

1 Öffnen Sie Microsoft Office Excel zu, geben Sie "1" in "A1", "2" in "B1" und "3" in "C1." Speichern Sie die Arbeitsmappe als "MyExceldata", "C:\".

2 Starten Sie Microsoft Office Access, "Bland Datenbank" auswählen, und klicken Sie auf "Erstellen". Wählen Sie das Menü "Datenbanktools" und klicken Sie auf "Visual Basic." Klicken Sie im Menü "Einfügen" und wählen Sie "-Modul."

3 Klicken Sie im Menü "Extras", wählen Sie "Verweise" und aktivieren Sie das Kontrollkästchen neben "Microsoft Excel < Versionsnummer > Object Library". Klicken Sie auf "OK".

4 Kopieren Sie und fügen Sie den folgenden VBA-Code zum Öffnen der Arbeitsmappe "MyExceldata". Sie verwenden den Wert in "B1" als Parameter zum Abfragen von Daten aus der Tabelle "DbAccessTable", die erstellt und die Beschreibung durch ein Meldungsfeld anzeigen.

Private Sub passExcelParamenters()

Dim StrSQL As String

Dim Dbs als Datenbank

Dim Rst als Recordset

Dim XLSPar As Integer

Dim XLSApp As Excel.Application

Dim XLXBook As Excel.Workbook

Dim XLSSheet As Excel.Worksheet

Eingestellt von Dbs = CurrentDb

Set XLXBook = Workbooks.Add(Template:="G:\myExcelData.xlsx")

Set XLSApp = XLXBook.Parent

Set XLSSheet = XLXBook.Worksheets("Sheet1")

Mit XLSSheet

. Range("B1"). Wählen Sie

XLSPar = Selection.Value

Enden mit

XLXBook.Close

StrSQL = "CREATE TABLE DbAccessTable (K_ID Anzahl, Prodct TEXT);"

DoCmd.SetWarnings False

DoCmd.RunSQL (StrSQL)

StrSQL = "INSERT INTO DbAccessTable (K_ID, Prodct)"

StrSQL = StrSQL & "VALUES (1,"Autos");"

DoCmd.RunSQL (StrSQL)

StrSQL = "INSERT INTO DbAccessTable (K_ID, Prodct)"

StrSQL = StrSQL & "VALUES (2, 'Lastwagen');"

DoCmd.RunSQL (StrSQL)

SqlStr = "SELECT dbAccessTable.Prod_ID, dbAccessTable.Prodct"

SqlStr = SqlStr & "von" DbAccessTable"

SqlStr = SqlStr & "wo (((dbAccessTable.Prod_ID) =" & (XLSPar) & "));"

Festlegen von Rst = Dbs. OpenRecordset(sqlStr)

RST. MoveLast

RST. MoveFirst

MsgBox "die Beschreibung für die Produkt-ID in B1 ist" & Rst. Fields(1). Wert

RST. Schließen

DBS. Schließen

EndSub

5 Mit "F5" Unterroutine ausgeführt.