A 97: Взаимдествие нескольких баз данных

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Ee-ex
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 07.08.2006 (Пн) 15:38

A 97: Взаимдествие нескольких баз данных

Сообщение Ee-ex » 18.06.2007 (Пн) 16:04

Здравствуйте, заранее прошу прощения за явно ламерский вопрос, но не могу найти ответ уже третьи сутки. Итак, дано:

БазаА - главная
БазаБ, БазаВ... и т.д. - чужие базы, в которых присутствуют где последовательность различных запросов (на выборку и создание таблицы), макросы.
Задача - нужна кнопка в БазеА, при нажатии которой (скорее всего программно) будет происходить некая последовательность действий, например
БазаБ - Запрос1
БазаБ - Запрос2
БазаВ - Макрос1

Вывод на экран итоговой таблицы, которая в БазеВ открывается при выполнении Макроса1
...

Никак не получается разобраться с этой задачей, просвятите плз

ЗЫ. Базы - чужие, модифицировать их нельзя, увы.
ЗЗЫ. Добавлять какие-то сторонние компоненты тоже не с руки, ибо БазаА используется несколькими пользователями одновременно.

Спасибо.

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

Сообщение alibek » 18.06.2007 (Пн) 18:13

К основной базе данных линкуешь таблицы из других баз и работаешь с ними.
Lasciate ogni speranza, voi ch'entrate.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Сообщение iGrok » 18.06.2007 (Пн) 23:49

При этом, если я не ошибаюсь, запросы и макросы придется продублировать в основной базе...
label:
cli
jmp label

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

Сообщение alibek » 19.06.2007 (Вт) 7:15

Сохраненные запросы тоже линкуются, как таблицы.
Ну а макросы продублировать.
Lasciate ogni speranza, voi ch'entrate.

Ee-ex
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 07.08.2006 (Пн) 15:38

Сообщение Ee-ex » 19.06.2007 (Вт) 10:36

Друзья, скопировать все макросы, таблицы и запросы - это простейший, но неверный выход.
1) с трудом представляю, как можно ориентироваться в базе, в которой более чем сотня запросов и более тысячи таблиц.
2) периодически тот или иной запрос модифицируется ответственным за него лицом, о чем я могу и не знать, а значит буду пользоваться неверными данными.

Вариант же формы с кнопочками мне кажется наиболее логичным.
Не верится, что данная проблема является такой уж сложной...

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Сообщение iGrok » 19.06.2007 (Вт) 10:42

Прилинкованные таблицы и запросы будут вполне себе нормально обновляться.
Опять же, линкуй ТОЛЬКО нужные таблицы и запросы, а не всю базу.

Макросы-то никто не переписывает?

Это тебе подсказывают наиболее простое решение, с наименьшим кол-вом кода.
label:
cli
jmp label

Ee-ex
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 07.08.2006 (Пн) 15:38

Сообщение Ee-ex » 19.06.2007 (Вт) 12:04

Прошу прощения, я наверно что-то упустил, но разве в 97 Акссесе можно прилинковывать запросы? До сих пор я пребывал в твердой уверенности, что "связь" есть только с таблицами, а запросы исключительно импортируются.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Сообщение iGrok » 19.06.2007 (Вт) 14:46

Хм.. Проверил. Ты прав походу. Таблицы линкуются - запросы нет.
label:
cli
jmp label

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

Сообщение alibek » 19.06.2007 (Вт) 14:53

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

Ee-ex
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 07.08.2006 (Пн) 15:38

Сообщение Ee-ex » 19.06.2007 (Вт) 15:07

alibek писал(а):Почему-то вспоминалось, что сохраненные запросы тоже линкуются.


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

"КомандаAccess база!макрос"

Мне, в принципе, только это и надо.

dormouse
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 140
Зарегистрирован: 10.01.2007 (Ср) 21:58
Откуда: Волжский

Сообщение dormouse » 10.08.2007 (Пт) 17:40

как я понял, требуется запускать запросы или макросы во внешних базах в новых окнах?

тогда могу предложить такой
Код: Выделить всё
Shell (Chr(34) & SysCmd(acSysCmdAccessDir) & "msaccess.exe" & Chr(34) & " " & Chr(34) & "[полный путь к базе]" & Chr(34) & "/xмакрос1")


Shell запускает инструкцию командной строки виндовс
SysCmd(acSysCmdAccessDir) показывает путь к установленному офису. вместе "msaccess.exe" получается полный путь к акцессу (на случай, если твои базы используются на разных компьютерах, а офис установлен там по нестандартным путям. у меня именно так :) )
Chr(34) - код кавычки, чтоб виндовс могла понимать длинные пути к файлам с пробелами
[полный путь к базе] - это имя базы, в которой находится нужный тебе макрос
/x - параметр запуска акцесса, указывающий на то, что надо запустить макрос. затем без пробела сразу указывается имя макроса
подробнее см. в справке "Параметры командной строки"

ещё, как вариант, можешь изучить содержимое акцессовских ярлыков. такие ярлыки получаются, если из окна базы перестаскиваешь любой объект на рабочий стол. создаётся обычный текстовый файл, например с расширением MAM - для макроса.
тогда можешь сочинить генератор такого временного ярлыка, который будешь запускать с помощью того же Shell. так можно будет открывать не только макросы

думаю, проще будет создать таблицу с полями: описание макроса/запроса для юзера; путь к базе; имя макроса/запроса
сделать диалог, где будет список на основе этой таблицы и кнопка с тем кодом. путь к базе и имя макроса брать из списка
VBA, MSA97


Вернуться в Базы данных

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

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

    TopList