MS Access - ADODB 连接问题 - FROM 子句中的语法错误

问题描述 投票:0回答:1

我正在将一个在 Access 32 位中设计的应用程序迁移到 Access 64 位。我已遵循 Microsft 网站中定义的所有步骤。我已经设法打开它并在应用程序拥有的大多数宏中工作,但我在 ADODB 连接方面遇到了困难。我将库从以前的“Microsoft.Jet.OLEDB.4.0”更新为“Microsoft.ACE.OLEDB.12.0”。

代码打开一个数据库txt文件(我在结构下面包含),然后将其写入Access数据库的表中。问题在于将 Txt fila 加载到记录集中时。连接正常(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 位版本中它确实可以工作。

问候

sql vba 64-bit adodb ms-access-2016
1个回答
0
投票

您似乎混淆了打开记录集和打开文件(连接到文件)

recordset.Open source, ActiveConnection, options

这里的“source”应该是你要运行的SQL。对于文本文件,“表名称”是文本文件的名称

© www.soinside.com 2019 - 2024. All rights reserved.