Как быстро обновить связанную таблицу при изменении имени внешнего файла

Поделись сейчас:

Связанные таблицы могут быть фантастически полезными (хотя, конечно, не всегда) — особенно когда вы имеете дело с внешней информацией, которая регулярно меняется. Типичным примером может быть ситуация, когда поставщик предоставляет вам доступ к своему файлу с текущими месячными ценами. Но что произойдет, если файл выдадут в следующем месяце, а название файла изменится с «Прайс-лист-01-01-2016» на «Прайс-лист-01-02-2016»? Первое, что произойдет, — ваша ссылка сломается, поэтому вам придется обновлять ее вручную. Каждый раз они меняют имя файла. Это касается и имен таблиц (конечно!). Есть ли способ сделать это быстро и легко, спросите вы? Мы рады, что вы спросили — читайте дальше и узнайте, как…

Установка сцены – сценарий

Связанный менеджер таблицВ этой статье я собираюсь использовать вымышленный сценарий, но я уверен, что вы его быстро узнаете!

Каждый месяц Acme Trading присылает нам обновленный прайс-лист на все расходные материалы, используемые в DataNumen. Чтобы мы знали, сколько мы будем тратить на канцтовары каждый месяц, мы связываемся с этим файлом в нашей базе данных управления офисом.

Изменить имя файлаПроблема в том, что хотя формат файла остается прежним, имя файла меняется каждый месяц. В прошлом месяце он был «стационарным costs Jan 2017.xls», в этом месяце это «неподвижно costфевраль 2017.xls».

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

Поскольку мы не хотели этого делать, вместо этого мы создали следующий код — намного проще, как вы, я уверен, увидите:

Public Sub UpdateLink (tableName As String, newFileName As String) Dim objDB As Database Dim objTableDef As TableDef Dim newConnect as String Set objDB = CurrentDb Set objTableDef = objDB.TableDefs(tableName) 'формат строки подключения в нашем случае, например, is: ' Excel 5.0;HDR=YES;IMEX=2;DATABASE=имя файла, включая путь и тип расширения newConnect = "Excel 5.0;HDR=YES;IMEX=2;DATABASE=" & newFileName objTableDef.Connect = newConnect objTableDef.RefreshLink Установить objTableDef = ничего Установить objDB = ничего End Sub

Объяснение кода

Как видите, мы передаем имя (связанной) таблицы вместе с именем нового файла, с которым должна быть связана таблица. Имя файла должно включать полный путь к файлу. Одна потенциальная область, с которой вы можете столкнутьсяtart получает правильный формат строки подключения для помещения в переменную «newConnect». Хотя существует множество источников для определения правильного формата, один из самых простых, которые я нашел, — это просто посмотреть строку подключения текущей связанной таблицы. Для этого просто добавьте следующую строку непосредственно под строкой «Set objTableDef = objDB.TableDefs(tableName)»:

Debug.Print (objTableDef.Connect)

Это напечатает существующую строку подключения в окне отладки/немедленной обработки кода редактора (если оно еще не отображается, нажмите CTRL-G на экране редактора кода VBA, чтобы переключить видимость окна немедленной обработки перед запуском кода.

Предупреждение

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

Об авторе:

Митчелл Понд — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая исправить повреждение SQL и программные продукты для восстановления Excel. Для получения дополнительной информации посетите www.datanumen.com

Поделись сейчас:

Один ответ на «Как быстро обновить связанную таблицу при изменении имени внешнего файла»

  1. Ого, потрясающая структура блога! Как долго вы ведете блог
    для? вы делаете ведение блога простым. Общий вид вашего сайта великолепен, как и
    содержание! Вы можете увидеть подобное: sklep online и
    здесь найлепший склеп

Оставьте комментарий

Ваш электронный адрес не будет опубликован. Обязательные поля помечены * *