Sql server 使用VBA访问从CSV导入到远程SQL server表

Sql server 使用VBA访问从CSV导入到远程SQL server表,sql-server,vba,ms-access,Sql Server,Vba,Ms Access,我们正在从2010年迁移到Access 2013,从SQL Server 2008迁移到2016年。为了导入一个CSV文件,我使用了Docmd.TransferText命令,这样可以很容易地导入本地访问表 现在,我在尝试将数据从CSV导入远程SQL Server表时遇到问题。我将该文件复制到SQL Server box中,其中包含2016数据库,并使用下面的文件进行传输 str1 = "BULK INSERT Temp3 " & _ "FROM 'C:\Bulk\Fi

我们正在从2010年迁移到Access 2013,从SQL Server 2008迁移到2016年。为了导入一个CSV文件,我使用了
Docmd.TransferText
命令,这样可以很容易地导入本地访问表

现在,我在尝试将数据从CSV导入远程SQL Server表时遇到问题。我将该文件复制到SQL Server box中,其中包含2016数据库,并使用下面的文件进行传输

str1 = "BULK INSERT Temp3 " & _
          "FROM 'C:\Bulk\FileExchange_Response_49636101_49.csv'" & _
          "WITH (FIRSTROW = 2, FIELDTERMINATOR = ',', " & _
          "ROWTERMINATOR = '\\n', TABLOCK)".
这不会引发任何错误,但是不会导入数据

有人能提出从CSV导入数据的想法吗

谢谢


即使没有错误,也不会导入数据。

看起来您已将数据导入Access。试试这个:

  • 创建一个到SQL Server表的“链接表”。外部数据>新建数据源>来自数据库>SQL Server>通过创建链接表链接到数据源>创建数据库DSN,选择您的表。您将在SQL Server表所在的表中看到一个绿色图标
  • 创建一个追加查询。创建>查询设计>关闭显示表弹出窗口>选择左上角的SQL视图>使用类似插入MyNewLinkedTable(Field1,Field2)的方法从MyAccessTable中选择Field1,Field2
  • 单击上面功能区上的“运行”,然后按照提示进行操作

  • 不需要VBA

    您是否考虑过使用powershell来导入CSV文件而不是MSAccess?那么它的作用是什么呢?我建议您直接在SSMS中运行它,而不是在VBA中运行它。VBA可能是异步的。