Вопросы по работе c VBA Access

Программирование на Visual Basic for Applications
Crio
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 84
Зарегистрирован: 21.05.2007 (Пн) 12:01
Откуда: Питер

Вопросы по работе c VBA Access

Сообщение Crio » 16.11.2007 (Пт) 2:42

Есть база данных на Access (БД1) с таблицами и запросом. Есть другая база данных (БД2) с таблицами, формами, запросами и модулями.
Вопрос, как можно с помощью VBA:
1) Импортировать в таблицу БД1 неполные записи (только некоторые из полей) из таблицы в БД2?
1) Экспортировать таблицу, полученную в результате обработки запроса из БД1 в БД2?
2) Каким-либо образом внедрить файл с БД2 в БД1, чтобы скопировав на другой компьютер лишь БД1 можно было бы потом из неё "вынуть и положить" на жесткий диск файл с БД2.
Подскажите, что искать. Если были схожие темы, то дайте ссылки или поисковые запросы.

Вопрос не по теме, но близко:
3) Слышал, что из файла mdb можно создать проектор (exe), на манер того, как это делается с pps. Это бред? Если нет, то будут ли там работать VBA модули и формы?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.11.2007 (Пт) 10:06

Насчет последнего вопроса -- да, такой "компилятор" я встречал. Глюковатый, малофункциональный и практически бесполезный.

Насчет остального -- сформулируй нормально вопросы. Каковы критерии "неполности" записи. Импорт/экспорт удобнее всего делать, прилинковав таблицы со второй базы к первой (или с первой ко второй) и далее выполнять запросы на обновление.

Но обычно подобные Access-приложения делают иначе. Вторую базу компилируют в MDE, к ней линкуют таблицы из первой базы. После чего все изменения данных вносятся непосредственно в первую базу и никакой синхронизации самому делать не надо.
Lasciate ogni speranza, voi ch'entrate.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 16.11.2007 (Пт) 10:24

Crio
3) Для чего тебе exe? защитить проект от модификации и копирования? конвертни в mde. Если тебе надо сделать видимость "сурьезной" программы, сделай запускной exe-файл выполняющий только shell "access.exe base.mde"
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Crio
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 84
Зарегистрирован: 21.05.2007 (Пн) 12:01
Откуда: Питер

Сообщение Crio » 16.11.2007 (Пт) 23:24

Для чего тебе exe?

Защитить себя от вопросов: "а наш OPEN DB ваш файл не открывает". Но раз всё существующее не функционально, то пусть...

Импортировать в таблицу БД1 неполные записи (только некоторые из полей) из таблицы в БД2?

С этим вопрос отпал, извиняюсь...

Экспортировать таблицу, полученную в результате обработки запроса из БД1 в БД2?

Да, спасибо alibek, стало ясно что искать...

Каким-либо образом внедрить файл с БД2 в БД1

Что мне нужно:
На компьютере есть только файл с БД1. Там находятся разнообразные модули, макросы, формы, запросы. Всё это запрещено к изменению и, местами, даже к просмотру.
Но результаты работы можно сохранить в отдельный файл БД2. В нём только таблица, простецкая форма и запрос. Смотри-изменяй сколько влезет.

Таблицу, форму и запрос можно хранить в БД1. Вопрос в том, можно ли из VBA создать пустой, но готовый к импорту файл mdb а потом перенести в него всё, что нужно?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 19.11.2007 (Пн) 9:24

Можно. Если через ADO (вернее, ADOX), то с помощью ADOX.Catalog.Create, если через DAO, то с помощью DAO.CreateDatabase. Либо непосредственно через объектную модель Access.
Lasciate ogni speranza, voi ch'entrate.

Crio
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 84
Зарегистрирован: 21.05.2007 (Пн) 12:01
Откуда: Питер

Сообщение Crio » 19.11.2007 (Пн) 10:54

alibek
Спасибо. Теперь знаю, что искать...

Если кто заинтересуется результатом, выложу.

daemon_mx
Новичок
Новичок
 
Сообщения: 40
Зарегистрирован: 11.04.2007 (Ср) 20:20
Откуда: Уфа

Сообщение daemon_mx » 24.11.2007 (Сб) 13:31

Выложи если не сложно, просто у меня похожая проблема. Хотелось бы посмотреть для примера!
Imposible is Noting so Go and Do what YOU want...

Crio
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 84
Зарегистрирован: 21.05.2007 (Пн) 12:01
Откуда: Питер

Сообщение Crio » 24.11.2007 (Сб) 15:18

А что именно за проблема? Просто полный вариант мне ещё писать и писать... А так, может что-то конкретное?


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 88

    TopList