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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Запуск функции
 
 автор: Hush   (13.11.2009 в 16:03)   личное сообщение
 
 

Подскажите как из одной базы Access запустить функцию в другой базе Acess и получить результат?

  Ответить  
 
 автор: Lukas   (13.11.2009 в 16:43)   личное сообщение
 
 

Подключить второй проект в качестве библиотеки в первом проекте (Имена проектов должны отличаться).
Вызывать из первого проекта функцию второго проекта, с указанием библиотеки (имени второго проекта).

  Ответить  
 
 автор: Hush   (13.11.2009 в 17:05)   личное сообщение
 
 

Можно по подробнее, с примерами?;)

  Ответить  
 
 автор: osmor   (13.11.2009 в 17:09)   личное сообщение
 
 

http://hiprog.com/forum/read.php?id_forum=1&id_theme=1635
http://hiprog.com/forum/read.php?id_forum=1&id_theme=1511

  Ответить  
 
 автор: Lukas   (13.11.2009 в 18:36)   личное сообщение
31 Кб.
 
 

Вот пример:
В зипе в папке два файла:
1. Work.mdb - это файл, куда мы будем подключать библиотеку, и из которого будем вызывать функции.
2. library.luk - это наша библиотека (файл MDB, у которого я просто поменял расширение на LUK)

Загружаем Work.mdb, автоматом откроется форма "frm1".
На событии Open формы вызывается функция подключения библиотеки.
Левая кнопка вызывает функцию из библиотеки, возвращающую имя файла библиотеки.
Правая кнопка вызывает функцию из библиотеки, возвращающую путь и имя файла библиотеки.
На событии Close формы вызывается функция отключения библиотеки.

Проверено на А2003 и А2007, на других не имею возможности.

При частой работе с библиотекой лучше иметь постоянную ссылку на библиотеку.
Библиотека должна быть откомпилирована,
и менять расширение файла на LUK совсем необязательно.

  Ответить  
 
 автор: Hush   (17.11.2009 в 18:49)   личное сообщение
 
 

Lukas, Это получает действительно билиотека;)
И функция в этой библиотеке у меня не видит "своих" таблиц. Наверно я плохо пояснил. Я хотел сделать что бы при вызове функции из одной базы в другой, функция на "другой базе" произвела операцию со "своими" таблицами и вернула результат в базу из которой ее вызывали.

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

Надо указать с какой DB работать. (CurrentDb or CodeDb)
Пример: получить значение ItemValue по значению IDItem таблицы t1 библиотеки.
Функция в библиотечной БД:

Public Function GetValueByID(ID As Long)
    With CodeDb.OpenRecordset("SELECT ItemValue FROM t1 WHERE IDItem=" & ID, dbOpenSnapshot)
        If Not .EOF Then GetValueByID = .Fields(0)
        .Close
    End With
End Function

  Ответить  
 
 автор: Hush   (17.11.2009 в 19:08)   личное сообщение
 
 

Все получилось! Всем ОГРОМНОЕ спасибо!!!

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