我将一系列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程序的结果存储在该数据库中。 –