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

Библиотека 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
DLL тип Variant -> VBA.ADODB.Recordset
    #39866649
Может Set V = myFunction(.......) ?
А что, V.EOF приводит к ошибке?
А Set Rs = myFunction(.......) тоже ошибка?
...
Рейтинг: 0 / 0
DLL тип Variant -> VBA.ADODB.Recordset
    #39866685
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
DLL тип Variant -> VBA.ADODB.Recordset
    #39866700
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X,

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


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