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弹出,脚本停止,我的数据库中什么也没发生。
有什么想法吗?
我在你的第一个帖子中回复了,但我想在这里重申,你正在重新发明一个运转良好的轮子。我不建议您使用 VBScript 来完成您想要做的事情。您可以直接在 Access 本身内部用 VBA 编写相同的代码。您甚至不需要这样做,因为 SAP 在后端使用标准数据库引擎。您可以设置直接从 SAP 拉入 Access 的链接表。没有导出\导入。这是一张直播桌子。
我不想给你“不要这样做”作为答案,但这绝对是你的正确答案。
因此,直接使用 SAP 的链接表或将此代码移至 Access VBA 并从那里运行。