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でオブジェクトのプロパティを調べても、私には何の違いも見られないようです。
どうしたの?