189 / 8 / 3
Регистрация: 20.01.2015
Сообщений: 172
|
|
1 | |
Как задать относительный путь к файлу БД?24.01.2015, 21:46. Показов 9589. Ответов 24
Метки нет Все метки)
(
Здравствуйте! Ваяю базу данных состоящую из двух частей один файл БД содержит только таблицы второй остальное (запросы, формы, макросы и тд), сделано это для того, что бы вносить изменения, добавления в рабочую базу не привязываясь к данным таблиц постоянно пополняющимся. Связаны они через связанные таблицы.
Вопрос вот в чем, как задать путь к связанной таблицы относительно той паки в которой они находятся (они находятся в одной папке) что бы при копировании на флешку или в другую папку путь не терялся. P.S. Я когда то такой трюк проделывал (нашел в инете), но забыл как и найти не могу теперь. Спасибо
1
|
|
24.01.2015, 21:46 | |
Ответы с готовыми решениями:
24
Как задать относительный путь для связанных таблиц? Как задать относительный путь к файлу? Как задать относительный путь к файлу?
|
![]() 26747 / 14426 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
24.01.2015, 23:21 | 2 | |||||
Трюка не знаю. В таких случаях делается перелинковка. При загрузке БД проверяются линки, скажем рекордсетом к линкованной таблице, и если ошибка, то запускается процедура перелинковки. Перелинковку можно делать различными средствами. Я предпочитаю ADOX
5
|
189 / 8 / 3
Регистрация: 20.01.2015
Сообщений: 172
|
|
25.01.2015, 01:17 [ТС] | 3 |
Смутно но понятно, помещать это куда надо??? Я начинаю осваивать VBA поэтому если можно по подробннее с что с этим делать.
0
|
![]() 26747 / 14426 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
25.01.2015, 10:19 | 4 | |||||
Делате загрузочную форму, можно невидимую. В ней на событии открытия делаете запрос к любой линкованной таблице из тех, что обязательно должны быть. На запросе строите рекордсет. В коде устанавливаете проверку ошибок. Если ошибка есть, то подключается процедура tConnect. Пример кода на открытии загрузочной формы
2
|
6 / 6 / 0
Регистрация: 18.03.2017
Сообщений: 63
|
|
10.03.2018, 11:47 | 5 |
Хорошее решение. Работало, пока я не завёл ещё одну базу. Может кто поделится наработками? Может есть у кого решение для двух, трёх источников таблиц? Желательно без доп библиотек. Иногда с базой приходится запускаться на неизвестных компах.
0
|
Модератор
![]() 4388 / 2303 / 576
Регистрация: 12.06.2016
Сообщений: 6,001
|
|
10.03.2018, 11:59 | 6 |
Ну, у меня три источника таблиц подключаются.
Все очень просто. Разумеется, "без дополнительных библиотек". Но сейчас некогда рассказывать. Потом, если никто до тех пор не ответит.
0
|
6 / 6 / 0
Регистрация: 18.03.2017
Сообщений: 63
|
|
10.03.2018, 12:02 | 7 |
0
|
Модератор
![]() 4388 / 2303 / 576
Регистрация: 12.06.2016
Сообщений: 6,001
|
||||||
10.03.2018, 12:44 | 8 | |||||
KirillovAV,
Хорошо, сейчас попробую сделать. Для случая, когда все файлы с данными лежат в одной папке с файлом интерфейса. Устроит такой вариант? Добавлено через 26 минут Молчание - знак согласия??? Ясно... Держите:
2
|
6 / 6 / 0
Регистрация: 18.03.2017
Сообщений: 63
|
|
10.03.2018, 14:22 | 9 |
Прошу извинить что сразу не ответил и можно Вас попросить сделать код для случая когда интерфейс и база таблицы в соседних каталогах лежат?
Структура расположения файлов: ...\БД\Кириллов\Интерфейс.accdb ...\БД\Иванова\Интерфейс.accdb ...\БД\Таблицы1.accdb ...\БД\Таблицы2.accdb Огромное Вам спасибо, за уже неоднократную помощь!
0
|
Модератор
![]() 4388 / 2303 / 576
Регистрация: 12.06.2016
Сообщений: 6,001
|
|||||||||||
10.03.2018, 15:00 | 10 | ||||||||||
KirillovAV,
И к кому что относится? К Кириллову Таблицы1, а к Ивановой Таблиы2? Это всегда так будет? Давайте лучше сделаю, чтобы Вы (или другой пользователь) вводили имя нужной папки, в которой лежат файлы с данными. Можно сделать, чтобы не вводить имя, а чтобы был выбор папки, как в проводнике, но пока не очень хочется, да и нужно ли Вам. Добавлено через 10 минут Кажется, сначала поняла неправильно. Наверное, нужно и из папки Кириллов, и из папки Иванова подключаться к обоим файлам таблиц? Сейчас сделаю. Добавлено через 14 минут Вот. Проверьте, пожалуйста.
Разница вот в этой строке:
0
|
6 / 6 / 0
Регистрация: 18.03.2017
Сообщений: 63
|
|
10.03.2018, 16:22 | 11 |
Ок. Пробую!
Добавлено через 21 минуту Создал модуль. Вставил код функции. В autoexec на первое место поставил запуск функции. Правильно делаю? Возвращается ошибка 3170. Невозможно найти устанавливаемый ISAM. Отладчик жалуется на строчку Db(!Name).RefreshLink
0
|
Модератор
![]() 4388 / 2303 / 576
Регистрация: 12.06.2016
Сообщений: 6,001
|
|
10.03.2018, 16:30 | 12 |
Что такое "жалуется"?
Текст сообщения есть? Добавлено через 3 минуты KirillovAV, Можете выложить интерфейсную часть (безо всего, только с использованием этой функции) и файлы с таблицами (пусть даже пустыми) ?
0
|
6 / 6 / 0
Регистрация: 18.03.2017
Сообщений: 63
|
|
10.03.2018, 16:31 | 13 |
Жалуется это имелось ввиду, после нажатия Debug - Желтым выделяет.
ошибка: "Run-time error 3170. Невозможно найти устанавливаемый ISAM"
0
|
Модератор
![]() 4388 / 2303 / 576
Регистрация: 12.06.2016
Сообщений: 6,001
|
|
10.03.2018, 16:34 | 14 |
Это не отладчик, это сообщение Run-Time, времени выполнения.
Выложить сможете?
0
|
6 / 6 / 0
Регистрация: 18.03.2017
Сообщений: 63
|
|
10.03.2018, 16:37 | 15 |
панель immediate На запрос "? !Name" выдает название таблицы. Которая точно существует в базе к которой подключаюсь.
Добавлено через 41 секунду Базу? Добавлено через 36 секунд Сейчас почищу - выложу
0
|
Модератор
![]() 4388 / 2303 / 576
Регистрация: 12.06.2016
Сообщений: 6,001
|
|
10.03.2018, 16:39 | 16 |
0
|
6 / 6 / 0
Регистрация: 18.03.2017
Сообщений: 63
|
|
10.03.2018, 16:51 | 17 |
Прилагаю БД
0
|
6 / 6 / 0
Регистрация: 18.03.2017
Сообщений: 63
|
|
10.03.2018, 17:17 | 18 |
Упаковывал Тоталом, без сохранения путей, структура папок удалилась. Перевыкладываю с папками как действительно расположено.
0
|
6 / 6 / 0
Регистрация: 18.03.2017
Сообщений: 63
|
|
10.03.2018, 17:18 | 19 |
Перевыкладываю с папками как действительно расположено.
0
|
Модератор
![]() 4388 / 2303 / 576
Регистрация: 12.06.2016
Сообщений: 6,001
|
|||||||||||
10.03.2018, 17:51 | 20 | ||||||||||
1. В файле ОКС_be.accdb всего одна таблица СоотвОбъектВводаРнВ.
Так и должно быть? По сути, это не важно, просто хочу убедиться, что все пришло как надо. 2. Файлы интерфейсные не открываются в 2007-м. Мне придется сделать свой. Но на Ваших проверить не смогу. Добавлено через 20 минут KirillovAV, Все, разобралась. Прошу прощения, мое упущение.
Я, правда, сделала форму с кнопкой, без макросов. Но это не влияет. Выкладывать, наверное, незачем. Поправьте у себя строчку, пожалуйста. Сообщите, как пойдет.
2
|
10.03.2018, 17:51 | |
Помогаю со студенческими работами здесь
20
Как получить относительный путь к файлу? Как прописать относительный путь к файлу Как указать относительный путь к файлу? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |