我正在考虑解决我的问题。
我有:
A - excel中的数字列表(比如说一个唯一ID),这个列表每隔几个小时就会改变
B - Access中的一个表,其中每个uniqueID都有一个额外的信息列(假设它是一个计数,称之为X)。
我的日常工作流程包括一张excel表,里面装满了带有空白X列的uniqueIDs。目前我正在将excel表导入访问,运行更新查询,然后将信息复制回excel以发送给同事。我每隔几个小时就会这样做,而且非常痛苦,我知道有一种编码方式我可以更容易地做到这一点,并且一直在试验一个VBA宏的概念,它直接从访问表中提取数据并在excel中填充我的列。
这可行吗?我不确定如何去做,甚至在谷歌搜索什么以获得更多帮助。
答案 0 :(得分:0)
您可以创建Excel对象的新实例,读取所需数据,然后使用CopyFromRecordset函数将X值转储回xlsx。这是典型的代码:
Dim rs_data As DAO.Recordset
Dim xls_App As Object 'Excel.Application
Dim xls_WB As Object 'Excel.WorkBook
Dim xls_WS As Object 'Excel.Worksheet
Set xls_App = CreateObject("Excel.Application")
Set xls_WB = xls_App.Workbooks.Open("C:\temp\MyDataFile.xlsx")
Set xls_WS = xls_WB.Sheets("MyWorksheetWithData")
Set rs_data = CurrentDb.OpenRecordset(str_SourceQuery)
xls_WS.Range("A1").CopyFromRecordset rs_data
rs_data.Close
xls_WB.Save
xls_App.Quit
您也可以使用SQL直接从xlsx读取数据。以下是如何使用SQL将数据从Excel传输到现有Access表的示例:
INSERT INTO Table1 (uniqueID, SomeOtherColumn)
SELECT *
FROM [MyWorksheetWithData$A1:B100]
IN "C:\Temp\MyDataFile.xls" [Excel 12.0;HDR=YES;IMEX=0];