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



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

我正在尝试将数据从.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 ,commassomedatabase.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

我的.csv文件如下所示:

50009900;Doe;01.01.12;foo;bar

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

有什么想法吗?

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

我讨厌给你"不要那样做"作为答案,但这绝对是你的正确答案。

因此,直接使用链接到 SAP 或将此代码移动到 Access VBA 并从那里运行它。

这行跳出来了

,因为它是一个静态记录集adOpenStatic因为它不允许在数据库上更新记录,只允许客户端记录集:

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

您需要动态或其他类型的游标:

objRecordSet.Open "SELECT * FROM SomeTable", objConn, adOpenDynamic, adLockOptimistic