2014-12-18 5 views
0

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

실제 오류 메시지를 포함하는 데 도움이,하지만 추측에'컨넥션을 설정 = CustomerTEST' –

+0

당신이 당신의 연결 문자열을 게시 할 수 있습니까? 이것이 올바르지 않으면 db 연결을 성공적으로 열지 못할 것입니다. –

+0

이미이 답장을 보내 주셔서 감사합니다! 엑셀에서 액세스 DB (2010)에 연결하려고한다는 것을 추가해야합니다. 또한 오류 메시지는 런타임 오류 - 잘못된 SQL 명령임을 나타냅니다. DELETE, INSERT, SELECT, PROCEDURE 또는 UPDATE가 예상됩니다. –

답변

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 
+0

이미이 답장을 보내 주셔서 감사합니다. 엑셀에서 액세스 DB (2010)에 연결하려고한다는 것을 추가해야합니다. 또한 오류 메시지는 런타임 오류 - 잘못된 SQL 명령임을 나타냅니다. DELETE, INSERT, SELECT, PROCEDURE 또는 UPDATE가 예상됩니다. –

+0

원본 코드 또는 제공 한 코드를 사용하여이 오류가 발생합니까? SQL 구문을 살펴 봐야 할 필요가 있습니다. 실제 SQL –

+0

를 보내주십시오. 답장을 보내 주셔서 다시 한번 감사드립니다. 나는 당신에게 정확하게 텍스트를 입력했다. 이제 rs.Open sqlText, CustomerTEST, adOpenForwardOnly, adLockReadOnly, adCmdText 줄에 오류가 표시됩니다. 오류 메시지는 FROM 명령에 구문 오류가 있음을 나타냅니다. 나는 실제 코드를 다음에 게시 할 것이다. –