Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / DLL тип Variant -> VBA.ADODB.Recordset / 5 сообщений из 5, страница 1 из 1
25.09.2019, 00:13
    #39866616
HOME_X
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DLL тип Variant -> VBA.ADODB.Recordset
Доброго дня господа !

Библиотека DLL (Delphi) преобразовала ADODB.Recordset в OLEVariant, этот тип принят функцией VBA и вернул тип Variant

[ Public | Private ] Declare FunctionnameLib "libname" [ Alias "aliasname" ] [ ( [ arglist ] ) ] [ As type ] as Variant
Данные видны в Debug-ере.

Вопрос
Как в VBA осуществить приведение типов, сделать ADODB.Recordset и стандартными методами
пройтись по массиву (while Rs.EOF, Rs.Next т.д.)

Dim Rs as ADODB.RecordSet, V as Variant
V = myFunction(.......) 'возврат Variant (recordset из DLL)
Rs = V ?????????????? Как преобразовать тип

Заранее благодарен !
...
Рейтинг: 0 / 0
25.09.2019, 09:01
    #39866649
DLL тип Variant -> VBA.ADODB.Recordset
Может Set V = myFunction(.......) ?
А что, V.EOF приводит к ошибке?
А Set Rs = myFunction(.......) тоже ошибка?
...
Рейтинг: 0 / 0
25.09.2019, 10:14
    #39866685
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DLL тип Variant -> VBA.ADODB.Recordset
HOME_XБиблиотека DLL (Delphi) преобразовала ADODB.Recordset в OLEVariant, этот тип принят функцией VBA и вернул тип VariantНе бывает просто Variant, у него всегда есть субтип. В данном случае это, вероятно, Variant/Object.

HOME_XКак в VBA осуществить приведение типов, сделать ADODB.Recordset
Только присвоением в переменную требуемого типа - тогда Variant-обёртка удаляется. Но требуется точное соответствие типа - иначе возникнет ошибка. Пробуйте:
Код: vbnet
1.
2.
Dim Rs as ADODB.RecordSet
Set Rs = myFunction(.......)
...
Рейтинг: 0 / 0
25.09.2019, 10:35
    #39866700
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DLL тип Variant -> VBA.ADODB.Recordset
HOME_X,

думаю OLEVariant из делфи это совсем не то, что просто переменная Variant в vba ...
видимые данные в отладчике возможно были текстовой строкой.
для обмена думаю лучше юзать какой нить общий dbf или что-то другое, хорошо перевариваемое и тем и другим...
...
Рейтинг: 0 / 0
25.09.2019, 12:57
    #39866828
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DLL тип Variant -> VBA.ADODB.Recordset
Из ide в Дельфи в ide vba ,либо наоборот передать как переменную сложный объект нельзя. К сожалению. Рекордсет привязан к исполняемой среде, и активен в рамках сессии ms access. Метнуть между приложениями к сожалению не выйдет.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / DLL тип Variant -> VBA.ADODB.Recordset / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]