Переименование полей в паре файлов связанных таблиц MDB? - PullRequest
0 голосов
/ 04 октября 2011

У меня есть база данных Access 2003 с использованием связанных таблиц MS-JET (то есть есть два файла * .mdb). Общая задача - перейти на сервер SQL. Однако в существующих базах данных есть несколько полей с пробелами и другими символами, которые расстраивают оба мастера миграции Access. Таким образом, промежуточной задачей является создание версии существующих mdb с обновленными именами полей.

«Простое» изменение имен полей в файле пользовательского интерфейса mdb не работает, поскольку связанные таблицы доступны только для чтения в этом mdb. Обновление имен полей файла данных mdb сначала не работает, потому что пользовательский интерфейс mdb затем вызывает колебание при запуске, и Access перестает работать.

Я ищу предложения, но я вижу следующие варианты:

  • реинтегрировать Data mdb обратно в пользовательский интерфейс, выполнить обновления, а затем повторно экспортировать данные. Мне кажется, что это очень рискованно (система живая, не хочу играть с данными более, чем строго необходимо).

  • Я рассмотрел несколько ответов, касающихся изменения деталей ODBC с помощью кода VBA, что интересно, и я вижу, как я могу программно редактировать имена связанных таблиц. Это сработает? Есть ли лучший способ?

  • Отключите все связанные таблицы, затем отредактируйте в пользовательском интерфейсе mdb оставшиеся формы, отчеты, запросы (но будет ли это работать ??) и отредактируйте поля Data mdb, и, наконец, снова свяжите все. Это развалится ?? ... кажется вероятным.

Есть предложения? Ruth

Ответы [ 3 ]

1 голос
/ 06 октября 2011

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

0 голосов
/ 05 октября 2011

Посмотрите, какие названия треков предлагает автозамена. Как работает автозамена имени в Microsoft Access

Сделайте копию своего пользовательского интерфейса MDB, удалите связанные таблицы, затем импортируйте их (как таблицы, а не ссылки) из MDB данных.Как только вы включите автозамену, Access попытается распространить изменения вашего имени поля, где бы они ни использовались (например, в формах).Маловероятно, что он поймает 100% необходимых изменений, но он должен разрешить большую их часть.Затем вам нужно будет вручную отследить и исправить все остальное.

После того, как вы все исправите, вы можете использовать эту версию MDB для "увеличения размера" ваших таблиц до SQL Server.Тем не менее, одно огромное осложнение заключается в том, что исходная база данных «жива», пока вы вносите изменения в новую версию.Если вы абсолютно не можете временно вывести базу данных из строя, вы можете отбросить данные из новых таблиц, а затем использовать запросы «добавления», которые псевдонимами старых и новых имен полей используются для получения последних данных.

INSERT INTO NewTable (emp_id, another_field)
SELECT
    [emp ID],
    [another field]
FROM OldTable IN 'C:\somefolder\Data.mdb';

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

0 голосов
/ 04 октября 2011

Инструмент Рика Фишера Find and Replace может оказаться полезным, если вам нужно распространять изменения имени в проекте. Я полагался на это годами (хотя в последнее время я мало занимаюсь разработкой Access): http://www.rickworld.com/products.html

Я думаю, что этот инструмент изменит названия таблиц и полей для вас, но я не уверен. В основном я использовал его для поиска ссылок на таблицы и запросы в других запросах, свойствах форм и отчетов и кода VBA.

...