VB6将文件路径插入SQL FROM子句

blu*_*ash 5 sql vb6 ado

我在Windows 7桌面上使用VB6来读取和处理文本文件,并且遇到了将变量传递给SELECT语句的问题.我的代码是:

Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim cm As ADODB.Command

Set conn = New ADODB.Connection
conn.Open _
    "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" & App.Path & ";" & _
    "Extended Properties=""text;HDR=No;FMT=Delimited( )"""

inputFile = "C:\test data\test data.asc"

Set cm = New ADODB.Command
cm.ActiveConnection = conn
cm.CommandType = adCmdText

cm.CommandText = "SELECT * FROM " & inputFile 
Set rs = New ADODB.Recordset
rs.Open cm, , adOpenKeyset, adLockOptimistic
Run Code Online (Sandbox Code Playgroud)

问题是输入文件的路径名包含空格,当我运行上面的代码时,它在rs.OPen行失败,错误说明FROM子句中的语法错误.如果inputFile中的路径不包含空格,则一切都可以正常运行.

我在inputFile周围尝试了很多"'[]等的组合,但总是得到语法错误或另一个错误,说找不到inputFile.txt.

有人能给我正确的方法来处理SQL语句中带空格的路径/文件名吗?

Mar*_*rkJ 1

显然,如果使用方括号,文件名中的空格应该起作用[ ]

cm.CommandText = "SELECT * FROM [" & inputFile & "]" 
Run Code Online (Sandbox Code Playgroud)

你在问题中说你已经尝试过方括号 - 你能仔细检查一下吗?我不知道目录名称中的空格。