Suppression à distance
Une base de données peut-elle supprimer les objets (tables, requêtes, formulaires, etc.) d’une autre base de données ?
Le code
Ca devrait marcher avec une petite touche d’Automation :o)…
Recopiez tout d’abord le code suivant dans un module standard de votre base de données principale.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
' --- ' SUPPRESSION D'UN OBJET D'UNE AUTRE BASE DE DONNEES ' --- ' Entrée : strBase <- Chemin complet de la base à traiter ' strNom <- Nom de l'objet à supprimer dans ladite base :-) ' otTypeObjet <- Type d'objet (à choisir dans une liste déroulante) ' Sortie : True si la suppression a réussi, False sinon. ' Function SuppressionObjetDistant( _ ByVal strBase As String, _ ByVal strNom As String, _ ByVal otTypeObjet As AcObjectType) Dim acApp As Access.Application ' Vérifier que la base à traiter existe On Error GoTo SODErr If Dir(strBase) = "" Then MsgBox "La base [" & strBase & "] est introuvable !", vbExclamation SuppressionObjetDistant = False Exit Function End If ' Ouvrir une nouvelle instance d'Access Set acApp = GetObject(strBase) ' Sélectionner et supprimer l'objet acApp.DoCmd.DeleteObject otTypeObjet, strNom ' On ferme ! acApp.Quit Set acApp = Nothing SuppressionObjetDistant = True Exit Function SODErr: MsgBox "Erreur " & Err.Number & vbCrLf & Err.Description, vbCritical SuppressionObjetDistant = False Exit Function End Function |
Tester le programme
Pour tester la commande, faites par exemple apparaître la fenêtre Exécution (Ctrl
+G
) et tapez-y :
? SuppressionObjetDistant("le chemin d'une base de données", "le nom d'une table", acTable)
…puis [Entrée]
pour valider.
Vous pouvez bien sûr associer le code à un bouton de commande pour automatiser tout ça !