2015-08-17 10 views
0

У меня есть база данных Access с множеством имен таблиц, ориентированных на год (не мой дизайн). Я хочу скопировать БД в новую БД и обновить все таблицы с тем же именем, но обновлено с «xxx_2007» до «xxx_2008», и все запросы, которые ссылаются на «2007», обновлены для ссылки «2008». Эти ссылки могут быть в именах таблиц или могут быть критериями выбора в запросе.массовое изменение ко всем запросам в БД

Подход, который я использую сейчас, - это открыть каждый запрос, скопировать SQL в блокнот, заменить «2007» на «2008», а затем скопировать его обратно в представление SQL запроса. Это работоспособно, но утомительно.

Любые предложения по программному способу обновить все?

+0

Мое предложение: не просто найти способ «взломать» плохой дизайн 2007 года в плохой дизайн 2008 года. Исправьте его правильно, чтобы вам не пришлось «взломать» его снова в следующий раз. –

+0

@Gord - Я согласен, но это (или должно быть) одноразовое упущение, чтобы ответить на аудит данных за 2007 и 2008 годы, и я надеюсь никогда больше не использовать систему. –

ответ

1

Что сказал Горд.

Но если вам действительно нужен быстрый хак, чтобы сделать его работу прямо сейчас, вы можете цикл в QueryDefs коллекции:

Dim DB As Database 
Dim QD As QueryDef 
Dim S As String 

Set DB = CurrentDb 
For Each QD In DB.QueryDefs 
    S = QD.SQL 
    If InStr(S, "2007") > 0 Then 
     S = Replace(S, "2007", "2008") 
     QD.SQL = S 
    End If 
Next QD 

Похожие с TableDefs для имен таблиц, здесь вы должны заменить TD.Name

Смежные вопросы