Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Связка Access + Delphi
 
 автор: Michae1   (17.07.2010 в 23:57)   личное сообщение
 
 

Здравствуйте.
Подскажите кто сталкивался, вот в Access есть стандартный компонент VBA (подключаемый как DLL в ссылках по умолчанию); когда требуется вызвать его функцию, то делают это чаще в простой неквалифицированной форме (например Date(), хотя можно и в объектной: VBA.DateTime.Date() ).
Суть вопроса: когда пишется ActiveX DLL на Delphi, чтобы затем подключить его к Access через "Ссылки", каким образом указывается что метод допускается вызывать в простой форме?
Т.е. например есть код на Delphi:
type
TTestClass = class(TTypedComObject, ITestClass)
published
function Test1: SYSINT; stdcall;
end;
implementation
uses ComServ, Dialogs;
function TTestClass.Test1: SYSINT; export;
begin
ShowMessage('OK');
Result:=0;
end;

Это все компилируется в DLL, подключается в Access и прекрасно работает, но нужно чтобы в последующем в Access функция из компонента вызывалась просто Test1(), а не MyTestClass.Test1, в т.ч. чтобы ее можно было использовать в SQL-запросах.

  Ответить  
 
 автор: snipe   (18.07.2010 в 01:21)   личное сообщение
 
 

Думаю что Ваша задача частично выполнима
не получится просто обратиться к Вашей функции ведь Акс не знает из какой библиотеки ее выудить
а вот SQL тут проще - SQL прекрасно позволяет использовать публичные функции т.е. в модуле пишите функцию в которой обращаетесь к нужной библиотеке и возвращаете запросу нужное значение

  Ответить  
 
 автор: Michae1   (18.07.2010 в 10:25)   личное сообщение
 
 

Думаю задача полностью выполнима, поскольку VBA-шные функции-же Access и SQL как-то понимают откуда выуживать. Кроме того при написании DLL на VB есть свойство класса Instancing=GlobalMultiUse, которое как раз и позволяет использовать функции DLL в любых приложениях в простой форме вызова, но с VB сложность поскольку Access его как раз понимает а SQL нет, а про Delphi и C++ известно что их DLL-функции понимает в т.ч. и SQL. Поэтому остается вопрос - где в Delphi это включается (аналог GlobalMultiUse)?

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList