Developpez.com

Une très vaste base de connaissances en informatique avec
plus de 100 FAQ et 10 000 réponses à vos questions

FAQ MS-AccessConsultez toutes les FAQ

Nombre d'auteurs : 140, nombre de questions : 926, dernière mise à jour : 30 mars 2017 

 
OuvrirSommaireVBATables et relations
 
Sélectionnez
Function xDropRelations()
Dim Rel As Relation
    For Each Rel In CurrentDb.Relations
        Debug.Print "effacement de la relation [" & Rel.Table & "]![" & Rel.Fields(0).name & "] -=-> _
                         & "[" & Rel.ForeignTable & "]![" & Rel.Fields(0).ForeignName & "]"
        CurrentDb.Relations.Delete Rel.name
    Next Rel
End Function
Créé le 6 octobre 2003  par cafeine
 
Sélectionnez

CurrentDb.Relations.Delete "NomTableUnNomTableDeux" 
Créé le 25 octobre 2004  par Maxence HUBICHE

Pour exécuter ce code, il faut activer la référence : Microsoft DAO 3.x Object Library.

 
Sélectionnez
   ' On crée une relation et définit ses propriétés. 
Dim rel as DAO.Relation 
 ' Définit les attributs de l'objet Relation pour appliquer l'intégrité référentielle. 
Set rel = Currentdb.CreateRelation("CommandesEmployés", "Employés", "Commandes") 
 ' On crée un champ dans la collection Fields de l'objet Relation. 
rel.Attributes = dbRelationDeleteCascade + dbRelationUpdateCascade 
 ' On ajoute le champ à l'objet Relation et l'objet.
Set chp = rel.CreateField(" employé") ' Fournit le nom du champ clé externe. 
chp.ForeignName = " employé"  
rel.Fields.Append chp 
Currentdb.Relations.Append rel
Créé le 25 octobre 2004  par Maxence HUBICHE

Lien : Définition et manipulation de données avec DAO par Tofalu
Lien : Comment déclarer une référence dans MS Access ?

Cette table se nomme toujours : <Le nom du fichier sans l'extension>_ImportErrors.
Il suffit de vérifier l'existence de la table, puis, si elle existe, de faire :

 
Sélectionnez
DoCmd.DeleteObject acTable, fichier & "_ImportErrors"

ou

 
Sélectionnez
CurrentDB.TableDefs.Delete fichier & "_ImportErrors"

En complément, voici comment purger les tables d'erreurs de la base :

(Fonctionne sur toutes les versions d'Access depuis Access 97.)

 
Sélectionnez

Function PurgeErreurs()

Dim tbl As TableDef
For Each tbl In CurrentDb.TableDefs
 If InStr(tbl.Name, "importerrors") Then
    Debug.Print "Effacement de " & tbl.Name
    CurrentDb.TableDefs.Delete tbl.Name
 End If
Next tbl

Set tbl = Nothing

End Function
Créé le 1er janvier 2005  par Gaël Donat, cafeine
 
Sélectionnez
Function TrouverCP(nom_table As String) As String

    Dim bds As Database, dft As TableDef, chp As Field
    Dim idx As Index

    ' Base de données en cours.
    Set bds = CurrentDb
   
    ' Retourne un objet Tabledef pointant sur une table.
    Set dft = bds.TableDefs(nom_table)

    ' Parcourt la collection Indexes de l'objet TableDef.
    For Each idx In dft.Indexes

        ' Vérifie la propriété Primary de l'index de
        ' l'objet Recordset.     
        If idx.Primary Then
             For Each chp In idx.Fields
                 TrouverCP = chp.Name   ' Clef primaire trouvée
                 Set bds = Nothing
               Exit Function ' On quitte la fonction
            Next chp
        End If
    Next idx

    Set bds = Nothing
TrouverCP = "null"  ' Pas de clef primaire trouvée
End Function
Créé le 10 mai 2005  par Team Access
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2013 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.