不知道要完全理解你想要什么,但如果你只是想查询的结果导出到电子表格中,你可以使用以下命令:
Private Sub ExportAccessDataToExcel()
Dim SqlString As String
SqlString = "CREATE TABLE testMeasurements (TestName TEXT, Status TEXT)"
DoCmd.RunSQL (SqlString)
SqlString = "INSERT INTO testMeasurements VALUES('Average Power','PASS')"
DoCmd.RunSQL (SqlString)
SqlString = "INSERT INTO testMeasurements VALUES('Power Vs Time','FAIL')"
DoCmd.RunSQL (SqlString)
SqlString = "SELECT testMeasurements.TestName, testMeasurements.Status INTO exportToExcel "
SqlString = SqlString & "FROM testMeasurements "
SqlString = SqlString & "WHERE (((testMeasurements.TestName)='Average Power'));"
DoCmd.RunSQL (SqlString)
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel7, "exportToExcel", "C:\TestMeasurements.xls", True, "A1:G12"
End Sub
来源:http://www.ehow.com/how_7326712_save-access-query-excel-vba.html
这可以直接从数据库或从Excel中完成(您需要使用Excel VBA打开数据库才能这样做,但大多数Office套件产品彼此交互良好)。
如果要将电子表格的数据推送到Access数据库中,则不同。您只需打开数据库并通过INSERT
查询进行循环。下面是一个简单的例子,你只需要添加的循环:
Dim db as DAO.Database
Set db = OpenDatabase(myDataBase.mdb)
Call db.Execute("INSERT INTO myTable (Field1, Field2) VALUES('Value1', 'Value2')")
打我吧,可能想打开只读太 – NickSlash 2013-05-02 16:05:10
@NickSlash我认为他需要以更改单元格的值到工作簿触发计算,所以需要写入表单。 – HansUp 2013-05-02 16:07:12
工作表仍应可编辑,您只能保存更改。我在readOnly工作簿上没有完成宏,所以不知道它是否会影响计算。 – NickSlash 2013-05-02 16:12:53