powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Взаимодействие Access VBA с Delphi - HELP !
11 сообщений из 11, страница 1 из 1
Взаимодействие Access VBA с Delphi - HELP !
    #32548427
niktesla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

У меня имеется БД Accecc'овского формата, в которой есть процедура, написанная на VBA.

Sub MyProc()
.........
End Sub

Возникла необходимость запустить эту процедуру из программы на Delphi, и как это сделать я чего-то не врублюсь...
В принципе, я надеялся запустить ее используя Объекты Автоматизации - создаю объект Application, подключаюсь к базе... а дальше пока неясно.
Макрос например можно выполнить при помощи DoCmd.RunMacro, а вот как используя объект Application(или еще чего другое) выполнить конкретную процедуру или отправить на выполнение кусок VB кода ?
Или как преобразовать вышеупомянутую процедурку в макрос, который можно выполнить при помощи DoCmd.RunMacro ?

HELP !
...
Рейтинг: 0 / 0
Взаимодействие Access VBA с Delphi - HELP !
    #32548580
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этот топ до конца прочитай - может и передумаешь Акс из Дельфи пользовать!
/topic/88148&hl=Application+Delphi
...
Рейтинг: 0 / 0
Взаимодействие Access VBA с Delphi - HELP !
    #32548904
niktesla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не, ну это не дело, Есть задача, и мне ее надо решить....

Кто нибудь знает, как запустить из Delphi процедуру VBA, содержащуюся в аксессовской БД ?

или как в аксессе создать макрос из процедуры ?
...
Рейтинг: 0 / 0
Взаимодействие Access VBA с Delphi - HELP !
    #32548946
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
переделываешь sub на function, и делаешь макрос для запуска ф-ии...

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
Взаимодействие Access VBA с Delphi - HELP !
    #32548993
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно поступить совсем некультурно.
Создать запрос, содержащий вызов этой процедуры. И дёргать его через ADO.
Параметры процедуры (если они есть) можно передать как параметры запроса.
...
Рейтинг: 0 / 0
Взаимодействие Access VBA с Delphi - HELP !
    #32549092
niktesla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, оба способа показали себя жизнеспособными
...
Рейтинг: 0 / 0
Взаимодействие Access VBA с Delphi - HELP !
    #32549121
аха
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот сходил на форум Дельфы, украл оттуда кусок кода:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
begin
{Экспорт в Excel}
  try
    try
      XL := CreateOleObject('Excel.Application');
    except
      raise Exception.Create('Ощибка запуска Excel');
    end;

    XL.Application.EnableEvents := False;
    XL.WorkBooks.Add('c:\test.xls'); 
    RowCount := XL.Workbook.WorkSheets[ 1 ].UsedRange.Rows.Count;
    ColCount :=  2 ;
    TableVals := VarArrayCreate([ 0 , RowCount,  0 , ColCount], varVariant);

т.е. работать с Оле можно

понятно, что если создать
Aсс := CreateOleObject('Access.Application')
(тут гемор при наличии файла рабочих групп - окошко появляется, если Admin запоролен в системнике по умолчанию - не помню, обходится ли)
дальше:
nAcc.DBEngine.SystemDB:=... (твой файл раб групп)
nacc.DBEngine.DefaultUser:= ...
nacc.DBEngine.DefaultPassword:= ...
то в нем можно открыть требуемый файлик
nAcc.OpenCurrentDatabase Filepath:= ... , Exclusive := ...
ну а там - обращаться к его модулям.

не уверен, что не будет очень много гемора. Но принципиальная возможность есть.
Если просто нужно использовать метод/функцию - дешевле ее переписать на паскале.
...
Рейтинг: 0 / 0
Взаимодействие Access VBA с Delphi - HELP !
    #32550500
Гость33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
marvanМожно поступить совсем некультурно.
Создать запрос, содержащий вызов этой процедуры. И дёргать его через ADO.

А можно подробнее для новичков? Как запрос то написать? В SQL SERVER я бы написал
Код: plaintext
exec MyFunc
А в Аксессе то как?
...
Рейтинг: 0 / 0
Взаимодействие Access VBA с Delphi - HELP !
    #32550506
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Application.Run

Создать макрос - просто офигительный совет:)
...
Рейтинг: 0 / 0
Взаимодействие Access VBA с Delphi - HELP !
    #32551071
niktesla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hummer - спасибо,
Application.Run это действительно, то что надо :)
(интересно кстати, зачем нужны остальные штук 20 Application.Run с различными параметрами)
...
Рейтинг: 0 / 0
Взаимодействие Access VBA с Delphi - HELP !
    #32551111
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 niktesla
Для передачи параметров в искомую процедуру - до 30 аргументов.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Взаимодействие Access VBA с Delphi - HELP !
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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