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

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

在 With 语句中,我在“.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

结束子

excel vba connection-string adodb recordset
1个回答
0
投票

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
© www.soinside.com 2019 - 2024. All rights reserved.