问题
I am looking for a solution to inserting data from Excel into Access 2010. The Data in Excel are in a form. After filling in the form, VBA in Excel will insert data to the Access table as a new record.
- I don't want to use function in Access - import from Excel.
- I don't want to store data in Excel - object table.
I looked at several topics, but none were what I was looking for. Could somebody help me with this?
回答1:
Use DAO to avoid memory leaks with an open Excel sheet ( http://support.microsoft.com/kb/319998 ), for example:
'Reference: Microsoft Office x.x Access Database Engine Object Library
Dim ws As DAO.Workspace
Dim db As DAO.Database
Dim sDb As String
Dim sSQL As String
Dim qdf As QueryDef
sDb = "Z:\Docs\Test.accdb"
Set ws = DBEngine.Workspaces(0)
Set db = ws.OpenDatabase(sDb)
''A stored query would be better
sSQL = "Parameters p1 Text, p2 Datetime; " _
& "INSERT INTO Table1 (AText,ADate) Values ([p1],[p2])"
Set qdf = db.CreateQueryDef("", sSQL)
qdf.Parameters!p1 = "ABC"
qdf.Parameters!p2 = #2013/1/17#
qdf.Execute dbFailOnError
Debug.Print qdf.RecordsAffected
来源:https://stackoverflow.com/questions/14396627/insert-data-form-excel-to-access-2010-using-vba