Compare'Em Эта утилита создаст необходимый VBA (или DDL, если вы заплатите ему 10 долларов США), чтобы создать различия между двумя бэкэндами. Хотя у него есть свои причуды, он делает достаточно хорошую работу. Я использую его все время для своих приложений с «термоусадочной пленкой».
Я сохраняю номер версии в определенном поле в таблице и выполняю соответствующий код, когда они сначала ссылаются на BE MDB, чтобы обновить BE MDB до новой файловой структуры. Каждое обновление версии находится в собственной подпрограмме. Я использую следующее, чтобы обновить номер версии до следующего номера версии.
' Update VersionNumberData on table
strSQL = "UPDATE zDataVersionNumberApp IN '" & strDatabasePathandName & "' SET zDataVersionNumber = " & _
CurrentVersionNumber
CurrentDb.Execute strSQL, dbFailOnError
Конечно после запуска часть пути кода через создание новых таблиц, полей, индексов и отношений, то я запускать различные запросы обновления/вставки для очистки данных. Затем продолжите выполнение сгенерированного кода для удаления старых полей/таблиц. Синтаксис запросов update/insert с использованием предложения IN немного сложный, поэтому я включаю пример. Этот пример включает в себя перемещение типизированного имени службы технической поддержки в другую таблицу, чтобы затем система могла использовать поле со списком для технологии обслуживания назначьте технологии почасовые и так далее.
' Append records to ServiceRecords table
strSQL = "INSERT INTO ServiceTech (stServiceTech) " & _
" IN '" & strDatabasePathandName & "' " & _
"SELECT srServicePerson FROM ServiceRecords " & _
" IN '" & strDatabasePathandName & "' " & _
"GROUP BY srServicePerson " & _
"HAVING (srServicePerson Is Not Null);"
CurrentDb.Execute strSQL, dbFailOnError
Является ли эта операция одноразовой или что-то, что должно выполняться часто? Если первое, то я никогда не находил, что стоит времени, чтобы скрипт что-то, что я могу сделайте это вручную, потому что для написания кода и проверки его требуется гораздо больше времени, чем просто сделать изменения. –