提问人:SatoP 提问时间:10/6/2023 最后编辑:braXSatoP 更新时间:10/6/2023 访问量:54
MS Access - ADODB 连接问题 - FROM 子句中的语法错误
MS Access - ADODB conection issue - syntax error in FROM clause
问:
我正在将 Access 32 位设计的应用程序迁移到 Access 64 位。我已遵循 Microsft 网站上定义的所有步骤。我已经设法打开它并在 App 拥有的大多数宏中工作,但我正在努力解决 ADODB 连接问题。我将库从以前的“Microsoft.Jet.OLEDB.4.0”更新为“Microsoft.ACE.OLEDB.12.0”。
该代码打开一个数据库 txt 文件(我包含在结构下方),然后将其写入 Access 数据库的表中。问题在于将 Txt fila 加载到 Recordset 中时。连接正常 (cnnTXT),但我在“打开”步骤中出现语法错误。
这是我收到消息的代码的笨拙之处:
Dim cnnTXT As New ADODB.Connection
Dim rsItfProc As New ADODB.Recordset
cnnTXT.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Forms!Menu_de_Opciones!tb_ruta & "\" & strDirItf & ";Extended Properties=""Text;HDR=no;FMT=Delimited"""
If rsItfProc.State = 1 Then rsItfProc.Close
Dim file As String
file = URL_of_the_file
rsItfProc.Open file, cnnTXT, adOpenStatic, , adCmdTable ---> HERE I AM GETTING THE MESSAGE
End If
文件是这样的:
22.11.2022 Dynamic List Display 1
--------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------
|Column1 |Column2 |Column3 |Column4 |Valid Until|Valid From|Column5 |
--------------------------------------------------------------------------------------------
|XXXX |50 |1234567890 |1234567890 |31.12.9999 |01.01.1999|81671454 |
|XXXX |50 |1234567890 |1234567890 |31.12.9999 |01.01.1999|81671454 |
--------------------------------------------------------------------------------------------
我尝试过很多东西,但我不是这种联系的专家。
我已将 adCmdTable 属性更改为 adCmdText,我尝试将 Open 更改为 OpenText。此外,我尝试将 SQl 语句编写为第一个属性,但没有表名,所以我正在循环尝试不起作用的事情。
谁能告诉我是否缺少某些内容或存在不应该存在的参数? 在 32 位版本中,它确实有效。
问候
答:
1赞
CHill60
10/6/2023
#1
您似乎将打开记录集与打开文件(连接到文件)混淆了
recordset.Open source, ActiveConnection, options
这里的“source”应该是你要运行的 SQL。对于文本文件,“表名”是文本文件的名称
评论
0赞
SatoP
10/6/2023
但是我使用文件的完整路径作为“源”,包括不带扩展名的文件名。类似于:“C:\Documents\TXT_file”
0赞
CHill60
10/6/2023
文件的完整路径是 <i>connect</i> 到该文件所需的路径。连接后,您需要选择数据 - 为此,您需要一个查询,例如select * from Name_of_File_without_path
0赞
SatoP
10/6/2023
但是我用cnnTXT做连接,不是吗?
0赞
CHill60
10/6/2023
从数据源中提取信息有两个步骤 1.连接到数据源 在您的情况下,这是“cnnTXT” - 您需要该位的完整路径文件名,因为它需要查找文件。你说对了。2. 使用该连接提取数据。通过引用所建立的连接来创建记录集,提供要运行的查询、已设置的连接以及任何其他相关信息作为选项。这部分只需要文件名,因为没有数据库表或 Excel 工作表可供参考。这是你错的地方
下一个:阴影空间示例
评论
Else
End If