使用 VBScript 将存储在 .csv 中的值插入到通过网络访问数据库

Tom*_* K. 5 csv vbscript ms-access

这是这个问题的后续帖子。

我正在尝试将 .csv 中的数据放入 .mdb (MS Access 2000)。

如果数据库存储在我的硬盘驱动器上,但它位于我通过网络访问的不同驱动器上,则此脚本运行良好。我在那里拥有完全的权利,我可以手动插入新数据集而没有任何问题。

'There are several other Subs in this .hta-file
'these two are specified along with some other public variables
'in the beginning

Const   adOpenStatic = 3
Const   adLockOptimistic = 3

Sub CSVImport

  connStr = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=S:\folderpath with blanks ß and ,commas\somedatabase.mdb"

  'Define object type
  Set objConn      = CreateObject("ADODB.Connection")
  Set objRecordSet = CreateObject("ADODB.Recordset")

  'Open Connection
  objConn.open connStr

  objRecordSet.Open "SELECT * FROM SomeTable", _
    objConn, adOpenStatic, adLockOptimistic

  Set objFSO = CreateObject("Scripting.FileSystemObject")

  Set objFile = objFSO.OpenTextFile("P:\someFile.csv")

  Do Until objFile.AtEndOfStream
    strVKBL_Stamm = objFile.ReadLine
    arrVKBL_Stamm = Split(strVKBL_Stamm, ";")
    objRecordSet.AddNew

    objRecordSet("ID") = arrVKBL_Stamm(0)
    objRecordSet("LastName")  = arrVKBL_Stamm(1)
    objRecordSet("Date")      = CDate(arrVKBL_Stamm(2))
    objRecordSet("More")      = arrVKBL_Stamm(...)
    objRecordSet("andMore")      = arrVKBL_Stamm(...)

    objRecordSet.Update
  Loop

  MsgBox "All done"

  Set objRecordSet = Nothing
  Set objFSO = Nothing
  Set objFile = Nothing
  Set objConn = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)

我的 .csv 文件如下所示:

50009900;Doe;01.01.12;foo;bar
Run Code Online (Sandbox Code Playgroud)

在脚本运行时,我没有收到任何错误。我检查了存储在其中的字符串arrVKBL_Stamm(...),它们都没有问题。我的最后一次MsgBox弹出,脚本停止,我的数据库中什么也没发生。

有什么想法吗?

Hac*_*ash 1

我在你的第一个帖子中回复了,但我想在这里重申,你正在重新发明一个运转良好的轮子。我不建议您使用 VBScript 来完成您想要做的事情。您可以直接在 Access 本身内部用 VBA 编写相同的代码。您甚至不需要这样做,因为 SAP 在后端使用标准数据库引擎。您可以设置直接从 SAP 拉入 Access 的链接表。没有导出\导入。这是一张直播桌子。

我不想给你“不要这样做”作为答案,但这绝对是你的正确答案。

因此,直接使用 SAP 的链接表或将此代码移至 Access VBA 并从那里运行。