Compare'Em Cet utilitaire va créer le VBA nécessaire (ou DDL si vous lui payez les 10 $) pour générer les différences entre deux MDB backend. Bien qu'il ait ses bizarreries, il fait un travail raisonnablement bon. Je l'utilise tout le temps pour mes propres applications "shrink wrap".
Je conserve un numéro de version dans un champ spécifique d'une table et j'exécute le code approprié lors de la première liaison à la BE MDB pour mettre à jour la BEBB BE dans la nouvelle structure de fichier. Chaque mise à jour de version est dans son propre sous-programme. J'utilise ce qui suit pour mettre à jour le numéro de version au numéro de version suivant.
' Update VersionNumberData on table
strSQL = "UPDATE zDataVersionNumberApp IN '" & strDatabasePathandName & "' SET zDataVersionNumber = " & _
CurrentVersionNumber
CurrentDb.Execute strSQL, dbFailOnError
Bien sûr, après l'exécution de la mi-chemin de code à travers pour créer les nouvelles tables, des champs, des index et des relations que je puis exécuter différentes requêtes mise à jour/insertion pour nettoyer les données. Continuez ensuite à exécuter le code généré pour supprimer les anciens champs/tables. La syntaxe pour les requêtes de mise à jour/insertion utilisant la clause IN est un peu complexe, par exemple je vais inclure un exemple: déplacer un nom de technicien de service tapé dans une autre table pour que le système puisse utiliser une zone de liste déroulante , affecter les taux horaires technologie et ainsi de suite.
' 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
est-ce une opération unique ou quelque chose qui doit être exécuté fréquemment? Si l'ancien, je ne l'ai jamais trouvé la peine le temps de quelque chose de script que je peux faire manuellement, car il faut beaucoup plus de temps pour écrire le code et le tester que pour faire les changements manuellement –