2

次のスクリプトでvbaを使用してSQLをExcelに取り込む作業をしています(一部のdb情報を保護するために検閲されていますが、スクリプトの一部は機能します)コンパイルに行くと、ランタイムエラー430が発生します:クラスは自動化をサポートしていませんまたは期待されるインターフェースをサポートしていません

Excel 2007、VBA 6.5、SQL2005を使用しています

これがスクリプトです

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
4

1 に答える 1

2

objMyRecordset を初期化しましたが、データを入力していません。次に、objMyRecordset から Excel ファイルにデータをインポートしようとしていますが、機能しません。

まず、レコードセットがいっぱいであることを確認してから、CopyFromRecordset だけを呼び出します。

于 2012-04-10T10:15:52.897 に答える