У меня есть база данных Access, которые хранятся на сетевом диске. Эти базы данных имеют свои собственные таблицы и ссылки на другие таблицы из других баз данных этого диска. Поскольку запросы выполняются по сети, для их завершения требуется некоторое время. Есть ли способ создать опцию для копирования требуемых объектов в локальную папку, запустив запрос, а затем вернет результаты в исходную базу данных в сети?Запуск запроса доступа с сетевого диска локально
ответ
У меня есть эта проблема тоже. Я копирую исходные данные и свою базу данных на свой локальный диск и добавляю две вещи:
Сначала это таблица («связанный источник таблицы»), которая сообщает, где хранятся связанные таблицы. Первая строка имеет место, чтобы использовать, когда БД находится в сети, 2-го показывает источник данных, когда я на локальном компьютере (в моем случае, B :)
ID source path
1 network \\usa0300swg02\sthq\corptax\tax\shared\Common Tables 2016.accdb
2 local b:\Common Tables 2016.accdb
Тогда у меня есть функция VBA, что я создал в AutoExec макрос, чтобы запустить всякий раз, когда я загрузить базу данных:
Function relink_tables()
If Left(CurrentDb().Name, 2) = "C:" Or Left(CurrentDb().Name, 2) = "B:" Then
Source = "local"
Else: Source = "network"
End If
Set rs = CurrentDb.OpenRecordset("select * from [linked table source] where source='" & Source & "'")
Source = rs.Fields("path")
For Each R In References
If InStr(R.Name, "Common Tables") > 0 Then Application.References.Remove R
Next R
Application.References.AddFromFile Source
x = 0
Set TDefs = CurrentDb().TableDefs
For Each table In TDefs
If InStr(table.Connect, "Common Tables") = 0 Then GoTo NT
table.Connect = ";DATABASE=" & Source
table.RefreshLink
x = x + 1
NT:
Next table
Finish:
MsgBox "remapped " & x & " tables"
End Function
Примечания:
- Это также обновляет ссылки на модуль кода - вы можете удалить эти строки если они вам не нужны
- Возможно, вам потребуется настроить функцию для конкретной ситуации - в моем случае все мои связанные таблицы com из db, называемые «Common Tables», и я переписываю все из этого db. Ваши точные требования, вероятно, будут отличаться, но это может дать вам место для начала.
- Это также очень удобно, когда я каждый день просматриваю базу данных - я просто обновляю источник связанных таблиц (с 2016 по 2017 год) и повторно -run the macro
Дополнительное примечание - как прокомментировал Хайнек Бернард выше, контроль версий и многопользовательский доступ являются большими соображениями. В моем случае я могу контролировать, кто еще использует db, когда я использую свою локальную копию. Другой вариант, если у вас есть SharePoint или что-то подобное, заключается в том, чтобы использовать его как репозиторий db в сети и использовать функции проверки и регистрации для контроля. Вам все равно нужно получить ссылки для размещения загруженных данных.
Спасибо за обширный ответ. Это дало мне хорошую основу для начала. Я буду учитывать, что вы и Hynek сказали, когда речь заходит о многопользовательском доступе. –
- 1. Скопируйте файлы быстро с сетевого сетевого диска
- 2. Запуск пакетного файла с учетной записью администратора с сетевого диска
- 3. Зеркалирование сетевого диска с использованием одного диска
- 4. Предотвращение запуска приложения с сетевого диска
- 5. установить XAMPP с сетевого диска
- 6. Открыть файл с сетевого диска
- 7. сопоставление сетевого диска с массивом
- 8. Частота индексации сетевого диска
- 9. ограничить открытие сетевого диска
- 10. Определение протокола сетевого диска
- 11. Подсоединение отсоединенного сетевого диска
- 12. Пакетная проверка наличия сетевого сетевого диска
- 13. Запуск нового сетевого запроса внутри onPostExecute
- 14. Как получить букву диска подключенного сетевого диска
- 15. Использование Python tkFileDialog для доступа к папкам сетевого диска
- 16. C# - Карта сетевого диска с веб-службы
- 17. Запуск запроса доступа без дубликатов
- 18. Найдите путь UNC сетевого диска?
- 19. сценарий для сопоставления сетевого диска
- 20. Возврат пользователей, сопоставленных буквой диска с сетевого диска удаленным
- 21. Как вызвать «карту сетевого диска»?
- 22. VBScript карта сетевого диска (домен)
- 23. javascript не работает с сетевого диска
- 24. WIX: Запустить MSI с сетевого диска
- 25. Eclipse, не может загрузить с сетевого диска
- 26. установка удаленного сетевого диска с использованием sshfs
- 27. Подключение/копирование с сетевого диска C#
- 28. Получить путь к папкам сетевого диска
- 29. WiX - запуск программы с диска?
- 30. апплет не может получить доступ к файлу с сетевого диска
Я думаю, что это займет слишком много работы, чтобы быть совершенным. Представьте, что 2 пользователя делают это в одно и то же время, тогда пользователь, который выполнил запрос позже, перезапишет работу предыдущего человека. Лучшее, что я хотел бы предложить, - это обновление до какого-то SQL-сервера. –