2012-04-10 6 views
2

나는 다음 스크립트 (어떤 db 정보를 보호하기 위해 검열 된,하지만 스크립트 작업 부분)와 함께 vba를 사용하여 Excel로 SQL을 가져오고 있습니다. 컴파일 할 때 실행 시간 오류 430 : 클래스가 자동화를 지원하지 않거나 예상되는 인터페이스를 내가 엑셀 ​​2007 VBA 6.5 및 SQL 여기에 2005점점 오류 430 : 자동화 오류

을 사용하고

을 지원하지 않습니다 당신은 objMyRecordset하지만 결코 초기화 한

Sub GetDataFromADO() 

    Dim objMyConn As ADODB.Connection 
    Dim objMyCmd As ADODB.Command 
    Dim objMyRecordset As ADODB.Recordset 

    Set objMyConn = New ADODB.Connection 
    Set objMyCmd = New ADODB.Command 
    Set objMyRecordset = New Recordset 

    objMyConn.ConnectionString = "Provider=SQLOLEDB;SERVER=M$#$%#@@$1;DATABASE=i*&^*;Trusted_Connection=yes;HDR=yes" 
    objMyConn.Open 

    Set objMyCmd.ActiveConnection = objMyConn 
    objMyCmd.CommandText = "use i*&^* select * from $#%.^&_d**^%_p**^^l where year(d****_date) = 2012 and month(d***_date)= 03 and deal_id < 5*******0 order by d***_id" 
    objMyCmd.CommandType = adCmdText 
    objMyCmd.Execute 

    ActiveSheet.Range("A2").CopyFromRecordset (objMyRecordset) 

End Sub 
+1

해당 스크립트의 작동 방식을 확인하는 데 어려움이 있습니다. 하나의 연결 문자열은 [여기] (http://www.connectionstrings.com/sql-server-2005)와 일치하지 않습니다. 어떤 줄에서 컴파일 오류가 발생합니까? – Fionnuala

답변

2

스크립트의 데이터를 입력하십시오. 그렇다면 objMyRecordset에서 작동하지 않는 Excel 파일로 데이터를 가져 오려고합니다.

먼저 레코드 집합을 채웠는지 확인한 다음 CopyFromRecordset 만 호출되도록하십시오.