VBA错误记录集,.open不起作用

VBA错误记录集,.open不起作用

问题描述:

在With语句中,我在“.Open”行上得到一个错误。VBA错误记录集,.open不起作用

我试图确保所有引用都被正确定义。还有什么可能导致问题? 感谢您的专业知识。

Option Explicit 



Sub ConnectTODB2() 
'early binding 

Dim CustomerTEST As ADODB.Connection 
Dim rs As ADODB.Recordset 
Dim sqlText As String 
Dim ConStrAccess As String 

Set CustomerTEST = New ADODB.Connection 
ConStrAccess = "Provider=Microsoft.ACE.OLEDB.12.0;Password="""";User ID=Admin;Data   Source=C:\Users\YacubDavid\Desktop\CIC SOD TOOL 2011 GBW.mdb;Mode=ReadWrite;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False;Jet OLEDB:Bypass UserInfo Validation=False;Jet OLEDB:Limited DB Caching=False;Jet OLEDB:Bypass ChoiceField Validation=False" 



    CustomerTEST.Open ConStrAccess 

    sqlText = "select * FROM 50 GBW People;" 
    Set rs = New ADODB.Recordset 

    rs.Open sqlText, CustomerTEST, adOpenForwardOnly, adLockReadOnly, adCmdText 



'Worksheets.Add 
'Range("A2").CopyFromRecordset rs 




    rs.Close 
    CustomerTEST.Close 
    Set CustomerTEST = Nothing 

末次

+0

将有助于包括实际的错误信息,但在猜测:'设置.ActiveConnection = CustomerTEST' – 2014-12-18 23:33:23

+0

您可以发布您的连接字符串?如果这不正确,您将无法成功打开数据库连接。 – 2014-12-18 23:33:36

+0

非常感谢您的回复!我应该补充一点,我试图从excel连接到访问数据库(2010)。此外,错误消息表明这是一个运行时错误 - 无效的SQL指令。预期会有DELETE,INSERT,SELECT,PROCEDURE或UPDATE。 – 2014-12-19 06:41:16

更新12/20:把[]周围表名。另一种选择是使用以下方法:

Option Explicit 

Sub ConnectTODB() 
'early binding 

Dim CustomerTEST As ADODB.Connection 
Dim rs As ADODB.Recordset 
Dim r As Range 
Dim ConStrAccess As String 
Dim sqlText   As String 

Set CustomerTEST = New ADODB.Connection 
ConStrAccess = "Provider=Microsoft.ACE.OLEDB.12.0;" & _ 
         "Data Source=C:\Users\YacubDavid\Desktop\xyz SOD TOOL 20x1 abc.mdb;" & _ 
         "Jet OLEDB:Engine Type=5;" & _ 
         "Persist Security Info=False;" 
CustomerTEST.Open ConStrAccess 

sqlText = "select * from [50 GBW People];" 
Set rs = New ADODB.Recordset 
rs.Open sqlText, CustomerTEST, adOpenForwardOnly, adLockReadOnly, adCmdText 

'Worksheets.Add 
'Range("A2").CopyFromRecordset rs 

rs.Close 
CustomerTEST.Close 
Set CustomerTEST = Nothing 

End Sub 
+0

非常感谢您回复这些回复!我应该补充一点,我试图从excel连接到访问数据库(2010)。此外,错误消息表明这是一个运行时错误 - 无效的SQL指令。预期会有DELETE,INSERT,SELECT,PROCEDURE或UPDATE。 – 2014-12-19 06:38:14

+0

此错误是否使用您的原始代码或我提供的代码?您需要查看SQL语法,因为这很糟糕。请发布您的实际SQL – 2014-12-19 14:37:27

+0

再次感谢您的回复。我准确地输入了你的文字。现在我得到了错误信息:rs.Open sqlText,CustomerTEST,adOpenForwardOnly,adLockReadOnly,adCmdText。该错误消息表明我在FROM命令中有语法错误。接下来我会发布实际的代码。 – 2014-12-20 05:36:55