Я использовал ответ с этого поста, чтобы экспортировать свои запросы в текстовый файл, так что я мог бы сделать находку/заменить упражнение:Импорт ранее вывезенные Access запросов SQL из текстовых файлов
Using VBA to export all ms access sql queries to text files
Я унаследовал базу данных который имеет имена объектов, banker1, banker2 и т. д., жестко закодированные, и мне приходилось создавать дополнительные приложения. Я экспортировал все свои запросы и заменил banker1 новыми именами. Все идет нормально.
Возможно ли отменить этот процесс из одного текстового файла и загрузить запросы в Access?
Мой предыдущий метод включал экспорт запросов в отдельные текстовые файлы с использованием Application.SaveAsText
, а затем цикл и выполнение поиска/замены. Проблема, с которой я столкнулся с использованием этого метода, заключается в том, что файл «отформатирован», возможно, фиксированная ширина, но не уверен, так что некоторые имена были разделены по строкам и поэтому не были обнаружены функцией find/replace. Загрузка их обратно с использованием Application.LoadFromText
работала отлично, за исключением того, что мне все равно пришлось искать по запросам, чтобы найти имена, которые не изменились.
Редактировать: Образец запрошенных запросов.
BNK30-AddChargebacks INSERT INTO BNK30EntryTable (запись) ВЫБОР BNK30SelectChargebacks.Entry ОТ BNK30SelectChargebacks ГДЕ (((BNK30SelectChargebacks.Amount) <> 0));
BNK30-AddCredit INSERT INTO BNK30EntryTable (запись) ВЫБОР BNK30EntryQuery.Credit ОТ BNK30EntryQuery ГДЕ (((BNK30EntryQuery.Amt) <> 0));
В выше, я бы делать поиска/замены в BNK30 с BNK31 и т.д.
Edit 2:
Operation =3
Name ="BNK01SavedReserves"
Option =0
Where ="(((BNK01Select.Reference) Is Null Or (BNK01Select.Reference)=[forms]![BNK01Nav]!"
"[txtReference]) AND ((BNK01Select.Date) Is Null Or (BNK01Select.Date)=[forms]![B"
"NK01Form]![StartedTime]))"
Begin InputTables
Name ="BNK01Select"
End
Begin OutputColumns
Name ="AssignedTo"
выше от моего оригинального метода, который работает за исключением того, где в BNK01 разделяется; чуть выше Начало входных таблиц. Следовательно, попытка переключиться на экспорт SQL как одного большого файла.
@ HansUp да, это правильно. Я сначала заменяю banker1 11 и 12. Возможно добавить несколько позже. Например, у меня есть запрос под названием Banker1SavedEntry, который относится к элементам управления в форме Banker1Statement. Мне нужно это, чтобы стать Banker12SavedEntry и т. Д. Существует приблизительно 60 объектов, связанных с каждым банкиром, не включая VBA. – nathanjw
@HansUp извините, да мне также нужно изменить имя запроса. Это не было проблемой в моем исходном методе, потому что, когда я зацикливался на запросах, ищущих те, которые сопоставлялись с banker1, я каждый раз сохранял их как новое имя. Цикл find/replace, который я создал в Word, чтобы открыть каждый файл в папке, выполните поиск/замену, а затем закройте файл. – nathanjw
@HansUp Я добавил образец запросов из файла, созданного путем экспорта querydef.SQL. Единственное, что может измениться, - это BNK30 станет BNK31. – nathanjw