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.