我在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语句中带空格的路径/文件名吗?
显然,如果使用方括号,文件名中的空格应该起作用[ ]。
cm.CommandText = "SELECT * FROM [" & inputFile & "]"
Run Code Online (Sandbox Code Playgroud)
你在问题中说你已经尝试过方括号 - 你能仔细检查一下吗?我不知道目录名称中的空格。