首页 文章

将excel文件导入访问表

提问于
浏览
1

我正在创建一个Access数据库,非常感谢VBA的一些帮助 .

帮助是我需要做的,

我有一个Excel工作表,其中包含需要添加到Access中现有表的数据 . 在VBA中有一种方法可以逐行添加excel中的数据吗?

对于Excel中的每一行,我需要:

1st :检查Access表中是否已存在sample_number,然后执行某些操作(如果存在) .

2nd :如果sample_number尚不存在,则将此行从excel复制并粘贴到Access表 .

现在我被困在如何逐行处理excel电子表格而不是一次导入整个表格 .

非常感谢帮助!谢谢

2 回答

  • 0

    访问远比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

    您可以将 transferspreadsheet 用于新表,然后使用SQL通过内部联接和左联接派生所需的数据子集在此处使用SQL,内置函数将是我的建议 . 甚至在SQL中跳过导入和使用Excel文件 .

    像这样的东西,新表是导入,db命令是现有表 . 这处理插入 . 将连接更改为INNER JOIN并删除WHERE子句将为您提供一个子集,以便对现有记录应用逻辑 .

    我需要用一些虚拟数据完全检查SQL,但这是一个好的开始 .

    使用DB执行这些类型的作业 .

    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

相关问题