Hvordan sende parameterne fra Excel til Microsoft Query

Hvordan sende parameterne fra Excel til Microsoft Query


Å ha kunnskap til å sende parametre fra Microsoft Excel til en spørring i Microsoft Office Access kan gjøre databaseapplikasjon mer dynamisk. Excel er et regnearkprogram som ofte brukes til å lagre og analysere store mengder data. Access er en relasjonsdatabase management system brukes til å utforme lokale databaser. Visual Basic for Applications (VBA) er et programmeringsspråk som brukes til å automatisere rutinemessige oppgaver som å sende parametere fra Excel til Access. En spørring blir brukt til å hente informasjon fra databasetabeller.

Bruksanvisning

1 Åpne Microsoft Office Excel, skriv "1" i "A1", "2" i "B1" og "3" i "C1". Lagre arbeidsbok som "myExceldata" i "C: \".

2 Start Microsoft Office Access, velg "Bland database" klikk "Opprett". Velg "Database Verktøy" -menyen og klikk "Visual Basic." Klikk på "Insert" -menyen og velg "Module".

3 Klikk på "Verktøy" -menyen, velg "Referanser", og merk av for "Microsoft Excel <versjonsnummer> Object Library." Klikk på "OK".

4 Kopier og lim inn følgende VBA-kode for å åpne "myExceldata" arbeidsbok. Du vil bruke verdien i "B1" som parameter for å søke informasjon fra "dbAccessTable" tabell som er opprettet og vise beskrivelsen gjennom en meldingsboks.

Private Sub passExcelParamenters ()

Dim strSQL As String

Dim dbs som database

Dim rst As Recordset

Dim XLSPar As Integer

Dim XLSApp Som Excel.Application

Dim XLXBook Som Excel.Workbook

Dim XLSSheet Som Excel.Worksheet

Sett dbs = CurrentDb

Sett XLXBook = Workbooks.Add (Mal: = "G: \ myExcelData.xlsx")

Sett XLSApp = XLXBook.Parent

Sett XLSSheet = XLXBook.Worksheets ( "Ark1")

med XLSSheet

.Range ( "B1"). Velg

XLSPar = Selection.Value

End With

XLXBook.Close

strSQL = "CREATE TABLE dbAccessTable (Prod_ID NUMMER, Prodct TEKST);"

DoCmd.SetWarnings falske

DoCmd.RunSQL (strSQL)

strSQL = "INSERT INTO dbAccessTable (Prod_ID, Prodct)"

strSQL = strSQL & "VALUES (1, 'Cars');"

DoCmd.RunSQL (strSQL)

strSQL = "INSERT INTO dbAccessTable (Prod_ID, Prodct)"

strSQL = strSQL & "VALUES (2, 'Trucks');"

DoCmd.RunSQL (strSQL)

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

sqlStr = sqlStr & "Fra dbAccessTable"

sqlStr = sqlStr & "WHERE (((dbAccessTable.Prod_ID) =" & (XLSPar) & "));"

Sett rst = dbs.OpenRecordset (sqlStr)

rst.MoveLast

rst.MoveFirst

MsgBox "Beskrivelsen for produkt-ID i B1 er" & rst.Fields (1) .Value

rst.Close

dbs.Close

End Sub

5 Trykk "F5" for å kjøre subrutine.