Excelマクロでは、次のようにRecordsetを返すように定義された関数があります。
Function GetCommissionDataRecordset(doctorCode As String) As ADODB.Recordset
Set GetCommissionDataRecordset = New ADODB.Recordset
.
. ' setup the connection and SQL string...
.
GetCommissionDataRecordset.Open strSQL
end function
そして私はそのように関数を呼び出そうとします
sub tester()
'Dim oRecSet As ADODB.Recordset ' this doesn't work, needs to be a variant
Dim oRecSet As Variant
Set oRecSet = GetCommissionDataRecordset("GC")
'Copy Data to Excel'
ActiveSheet.Range("a1").CopyFromRecordset (oRecSet)
end sub
定義したtesterサブプロシージャでoRecSet as ADODB.Recordset、を実行するとランタイムエラーが発生しますCopyFromRecordset。
oRecSetとして定義すると、エラーはなくなりますVariant。
実行時エラーは430 Class does not support Automation or does not support expected interfaceです。
エラーが発生すると、WatchはタイプoRecSetがRecordset/Recordset
バリアントアプローチを使用すると、WatchはタイプoRecSetがVariant/Object/Recordset
Watchでオブジェクトのプロパティを調べても、私には何の違いも見られないようです。
どうしたの?