You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Access 2016导入多CSV至单表失败:生成多表而非写入UKR表

问题分析与解决方案:Access批量导入CSV到指定表而非新建表

嘿,我一眼就找到问题所在了——你在循环里不小心把目标表名给覆盖了!

你一开始明明定义了要将所有CSV导入到预先创建的UKR表,但在Do循环里写了这行代码:

strTable = Left(strFile, Len(strFile) - 4)

这会把每次导入的目标表名改成当前CSV文件的名字(去掉.csv后缀),所以Access才会为每个CSV单独创建新表,完全忽略了你最初指定的UKR表。

修改后的正确代码

只需要删掉那行覆盖表名的代码,让strTable始终指向你预先创建的UKR表即可:

Option Compare Database
Option Explicit
Function DoImport()
    Dim strPathFile As String
    Dim strFile As String
    Dim strPath As String
    Dim strTable As String
    Dim blnHasFieldNames As Boolean
    
    blnHasFieldNames = True
    strPath = "C:\UKR\"
    strTable = "UKR" ' 固定指向预先创建的目标表
    strFile = Dir(strPath & "*.csv")
    
    Do While Len(strFile) > 0
        strPathFile = strPath & strFile
        ' 直接使用固定的strTable参数
        DoCmd.TransferText acImportDelim, , strTable, strPathFile, blnHasFieldNames
        strFile = Dir()
    Loop
    MsgBox "done"
End Function

额外注意事项

  • 请确认你预先创建的UKR表的字段名,和CSV文件的表头完全匹配(因为你设置了blnHasFieldNames = True,Access会通过表头匹配对应字段);如果你的CSV没有表头,记得把这个参数改成False,同时保证CSV的字段顺序和UKR表的字段顺序完全一致。
  • 确保CSV中的数据类型和UKR表对应字段的类型兼容(比如数字字段不要导入文本内容),否则可能会出现导入报错或数据丢失的情况。

内容的提问来源于stack exchange,提问作者rob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 23:02:37