2014-04-07 13 views
0

У меня есть большое количество баз данных доступа, которые должны иметь одинаковые изменения дизайна таблицы (и несколько новых таблиц) в каждом из них. Есть ли способ взять мою самую последнюю (правильно разработанную) базу данных, экспортировать свойства дизайна и импортировать их в каждую другую базу данных, переписывая изменения и создавая любые новые поля, таблицы и т. Д. По мере необходимости?Импортировать свойства базы данных таблицы доступа Access, но не данные

Мои исследования привели меня только к разработчику базы данных, который кажется полезным только в тех случаях, когда я вручную обновлял свойства. Я также знаю, что могу потенциально копировать каждую таблицу вручную, указывая «Только структура» для каждого случая, но это было бы довольно сложной задачей, и я не уверен, что именно будет скопировано с использованием этого метода.

ответ

0

Я нашел утилиту DBWeigher, которая способна анализировать и сравнивать два доступа к базам данных и автоматически генерировать необходимый VBcode для обновления изменений между два. Отсюда я быстро проверил изменения вручную и смог увидеть из первых рук, какие изменения будут сделаны до запуска их через DBConsole.

Для тех, кто пытается обновить старые базы данных доступа (особенно, если они находятся на разных этапах и могут иметь некоторые отклонения), я не могу предложить проверить эту легкую утилиту.

1

Позвольте мне увидеть, если у меня есть план ...

Open Proper.mdb 

For each OtherMDB in Folder1 
    Open OtherMDB 
    for each ProperTable in Proper.mdb 
     If ProperTable is absent from OtherMDB 
      Add ProperTable to OtherMDB 
     Else 
      For each Field in ProperTable.Fields 
       If ProperField is absent from OtherTable.Fields 
         Add Field to OtherTable 
       Elseif ' is this a possibility?? wanting to change field type? 
        ProperField.Type <> OtherTable.Field("xx").Type Then 
         Change Field.Type 
       endif 
      Next Field 
     Endif 
    Next Table 
    Close OtherMDB 
Next MDB 
+0

У вас его есть, я верю. Моя забота заключается в том, чтобы убедиться, что я копирую/перезаписываю ВСЕ свойства внутри каждой таблицы (т. Е. Циклически, чтобы гарантировать, что обязательные, ограничения символов и т. Д. Скопированы). Я не был уверен, что Access имеет встроенную функцию, похожую на то, что импортирует только структуру базы данных, и в этом случае я не возражаю против небольшой работы с ручным трудом, поскольку есть только ~ 20 mdb. Использование импорта приведет к большому количеству дублированных таблиц, поскольку он не предлагает перезаписать только структуру, к сожалению. Я ценю вашу помощь и надеюсь, что вы сможете продолжить/помогать мне. – Bernard

+0

Всего несколько обзорных пунктов-- 1) Все ли другиеMDB-ы в одной папке или много? как они идентифицируются и выбираются? 2) Было бы проще, если бы не было изменений в Field.Type ... это требование? 3) какую версию MSAccess вы используете? 4) Какую часть вы уже начали писать? 5) какая проблема? 6) Можете ли вы опубликовать ProperMDB и один образец OtherMDB без предоставления конфиденциальных данных? возможно, удалить все данные и оставить структуры? tkx – donPablo

+0

Извинения за задержку в возвращении. Я очень ценю вашу помощь в создании базовой структуры для кода, но я собираюсь опубликовать ответ с помощью утилиты, которую я нашел, которая смогла достичь именно того, что я хотел. – Bernard