我將一系列Excel VBA計算中的數據存儲爲VBA代碼中的變量。我想在代碼結尾處做的是將這些變量的數據作爲新記錄傳送到MS Access數據庫中。如何將Excel VBA程序中作爲變量存儲的數據傳輸到Access數據庫
Access數據庫已經存在並準備就緒。在將數據傳輸到Access之前,是否必須將變量中的數據放入工作表上的單元格中?
下面是在VBA代碼中的變量,我想在數據庫中存儲(變量名稱對應於數據庫列標題)
Dim customerName As String
Dim customerAge As Integer
Dim customerSpend As Double
customerName = "Tim"
customerAge = 26
customerSpend = 12876
這是我已經成功的代碼示例迄今爲止寫入嘗試並傳輸數據,但我被困在「範圍」部分,因爲它們是變量,而不是一個單元格區域:
Dim strPath As String
Dim objAccess As Object
strPath = "C:\db1.accdb"
Set objAccess = CreateObject("Access.Application")
Call objAccess.OpenCurrentDatabase(strPath)
objAccess.Visible = True
Call DoCmd.TransferSpreadsheet(acImport, acSpreadsheetTypeExcel12, CustomerDetails, Range)
我如何將存儲在變量的數據在VBA代碼中插入Access數據庫中的相應列以創建新記錄?
該代碼在Excel中,還是在Access? 'DoCmd.TransferSpreadsheet'是一個Access的東西,但你正在創建一個後期綁定的Access應用程序(爲什麼?)。 'TransferSpreadsheet'不傳輸變量或數據,它*傳輸電子表格*,所以它想要一個'Range'來包含你想要「傳輸」的數據。將變量轉儲到工作表中,傳輸該工作表。 –
或者,爲每個要插入的值創建一個帶有參數的INSERT查詢,然後調用它。有很多方法可以做到這一點。 –
嗨 - 感謝您的建議 - 此代碼旨在在Excel中運行的VBA程序的末尾。然後,我想打開一個Access數據庫並將Excel VBA程序的結果存儲在該數據庫中。 –