不知道要完全理解你想要什麼,但如果你只是想查詢的結果導出到電子表格中,你可以使用以下命令:
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