我正在创建一个Access数据库,非常感谢VBA的一些帮助。
帮助就是我需要做的事情,
我有一个Excel工作表,其中包含需要添加到Access中现有表的数据。在VBA中是否有一种方法可以逐行添加excel中的数据?
对于Excel中的每一行,我都需要:
第一:检查Access表中是否已存在sample_number,如果存在,则执行一些操作。
第二次:如果sample_number尚不存在,则将此行从excel复制并粘贴到Access表。
现在我被困在如何逐行处理excel电子表格而不是一次导入整个表格。
非常感谢帮助! 感谢
答案 0 :(得分:1)
访问远比excel更有条理,因此搜索和数据验证更容易实现。要在验证每条记录的同时使用vba从excel导入,我找到的最佳方法是对临时访问表进行全面导入,然后循环访问临时表,验证数据并根据需要将其添加到目标表,而不是尝试在仍然在excel电子表格中查询数据。希望这有帮助
Dim SQL As String
Dim rs As Recordset
SQL = "SELECT field1,field2 FROM tempTable"
Set rs = CurrentDb.OpenRecordset(SQL)
Do While Not rs.EOF
'YOUR VALIDATION CODE HERE
rs.MoveNext
Loop
答案 1 :(得分:0)
您可以将transferspreadsheet
用于新表,然后使用SQL通过内部联接和左联接派生所需数据的子集这里使用SQL和内置函数将是我的建议。甚至在SQL中跳过导入和使用Excel文件。
像这样的东西,其中新表是导入,db命令是现有表。这处理插入。将连接更改为INNER JOIN并删除WHERE子句将为您提供一个子集,以便对现有记录应用逻辑。
我需要使用一些虚拟数据完全检查SQL,但这是一个好的开始。
使用数据库执行这些工作。
INSERT INTO [tbl_DB_ORDERS] ([ORDER_NO])
SELECT NT.[ORDER_NO] FROM [NEW_TABLE] as NT LEFT JOIN [tbl_DB_ORDERS] AS ORD ON NT.[ORDER_NO]=ORD.[ORDER_NO] WHERE ORD.[ORDER_NO] IS NULL