2010-02-24 6 views
0

에 오류 :VBA의 나는 다음과 같은 코드를 엑셀

Sub Stats1() 
Workbooks("2006_2007_2008.xls").Sheets("Sheet1").Select 
Worksheets("Sheet1").Activate 

    Dim my_cell As String 
    my_cell = InputBox("Which cell?") 

    Dim objConn As ADODB.Connection 

    Dim rsData As ADODB.Recordset 

    Dim strSQL As String 
     Dim mycell As String 

    szconnect = "Provider=SQLOLEDB;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=*****;Data Source=*****" 

     'Create the Connection and Recordset objects. 
    Set objConn = New ADODB.Connection 
     Set rsData = New ADODB.Recordset 

    On Error GoTo errHandler 

    'Open the Connection and execute the stored procedure 

    objConn.Open szconnect 

    strSQL = "SELECT *fom mytable" 
    objConn.CommandTimeout = 0 

    Set rsData = objConn.Execute(strSQL) 

    For iCols = 0 To rsData.Fields.Count - 1 

    ActiveSheet.Range(my_cell).Select 
    ActiveSheet.Cells(ActiveCell.Row, ActiveCell.Column + iCols).Value = rsData.Fields (iCols).Name 
    ActiveSheet.Cells.Font.Name = "Arial" 
    ActiveSheet.Cells.Font.Size = 8 

    Next 

    ActiveSheet.Range(ActiveSheet.Cells(ActiveCell.Row, ActiveCell.Column),  ActiveSheet.Cells(ActiveCell.Row, ActiveCell.Column + rsData.Fields.Count)).Font.Bold = True 

    If Not rsData.EOF Then 

'Dump the contents of the recordset onto the worksheet 

On Error GoTo errHandler 

ActiveSheet.Cells(ActiveCell.Row, ActiveCell.Column).CopyFromRecordset rsData 


    If Not rsData.EOF Then 

    MsgBox "Data set too large for a worksheet!" 

    End If 

    rsData.Close 



    End If 

    Unload frmSQLQueryADO 

    Exit Sub 

    errHandler: 

    MsgBox Err.Description, vbCritical, "Error No: " & Err.Number 

'Unload frmSQLQueryADO 

    End Sub 

내가 "424 필요한 개체 오류"좀 .. 그나마 문제가 무엇인지 ...! 는 내가 모든 올바른 참조

을 추가 한 생각
+1

__VAB__ in excel. 오타입니까? –

+0

어떤 라인에서 오류가 발생합니까? –

+0

나는 잘 모르겠다. 프로그램이 잘 실행된다.., 나는 결과로부터 질의를 얻고, 결국에는 오류를 얻는다. ... 나는 디버그를하지 않는다. 아무 것도 얻지 못한다 .... – andreas

답변

1

한 가지 분명한 문제 :

strSQL = "SELECT *fom mytable" 

이어야

strSQL = "SELECT * from mytable" 

편집 : 나는 모형에서 위의 코드를 테스트하고있는 동안 상당히 정돈되어야한다, 그것은 효과가있다. 따라서이 줄에 오류가 있다고 제안합니다.

Unload frmSQLQueryADO 

줄을 주석으로 처리하고 작동하는지 확인해보십시오.

+0

아니 .. 아니야 ... SQL은 잘 실행된다. 위의 SQL은 단지 예일 뿐이다 ... – andreas

+0

나는 더 이상의 메모를 추가했다. – Fionnuala

0

rsData는 연결이 아니라 쿼리에서 반환 된 레코드 집합입니다.

시도해보십시오. objConn.Close

관련 문제