IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Création de relation par VBA [AC-2007]


Sujet :

VBA Access

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Par défaut Création de relation par VBA
    Bonsoir,
    J'ai utilisé le code suivant donné par Christian WARIN dans son tuto "manipulation des données DAO" au § 4.6.5 "Relations".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    Dim oDb As DAO.Database
    Dim oRlt As DAO.Relation
    Dim oFld As DAO.Field
    Set oDb = CurrentDb
    'Crée la relation
    Set oRlt = oDb.CreateRelation
    'Définit les propriétés
    oRlt.Attributes = dbRelationUpdateCascade
    oRlt.ForeignTable = "Commande"
    oRlt.Name = "Rlt_CommandeClient"
    oRlt.Table = "Client"
    'Crée le champ dans la relation
    Set oFld = oRlt.CreateField("NumClient")
    'Définit le nom de la clé externe
    oFld.ForeignName = "IDClient"
    'Ajoute le champ
    oRlt.Fields.Append oFld
    'Rafraîhit la collection Relations
    oDb.Relations.Refresh
    'Ajoute la relation
    oDb.Relations.Append oRlt
    'Rafraîhit la collection Relations
    oDb.Relations.Refresh
    'Ferme la base de données
    oDb.Close
    Set oDb = Nothing
    Je rencontre une erreur à la ligne 22 ci-dessus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Ajoute la relation
    oDb.Relations.Append oRlt
    "Vous ne pouvez pas ajouter ou modifier un enregistrement car l'enregistrement associé est requis dans la table 'Client'"

    Or, si je crée cette relation manuellement, tout se passe bien.

    D'où peut provenir cette erreur ?
    Amlcalement.

  2. #2
    Expert confirmé
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Billets dans le blog
    2
    Par défaut
    AndréPe bonsoir,

    je pense au fait que le champ n'ayant pas été créée dans la base, la méthode close n'a pas encore agit. Tu peux essayer après le refresh et si cela ne fonctionne pas créer ta relation après la fermeture de l'objet.

    http://social.msdn.microsoft.com/For...onships-in-vba

    Cordialement,

    Jimbolion

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Par défaut
    Merci jimbolion,
    Ta réponse m'a incité à revoir ma méthode manuelle et je me suis aperçu qu'elle fonctionnait parce je n'avais pas demandé l'intégrité référentielle : des références de la table externe n'existaient pas dans l'autre table.

    Rectifications faites dans les tables, le programme VBA a bien fonctionné.
    Donc résolu !

    Amicalement

  4. #4
    Expert confirmé
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Billets dans le blog
    2
    Par défaut


    jimbolion

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Création d'onglet par VBA
    Par canaque dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 26/06/2014, 09h06
  2. [AC-2003] Créations des Relations par VBA
    Par jmde dans le forum VBA Access
    Réponses: 0
    Dernier message: 24/03/2011, 12h32
  3. [XL-2003] Création de procédure par VBA
    Par setepenre dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 14/12/2010, 09h12
  4. [Table] Création de table par VBA-DAO
    Par Invité dans le forum VBA Access
    Réponses: 3
    Dernier message: 15/05/2007, 10h07
  5. Création de label par VBA (excel)
    Par WagaSeb dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/10/2006, 14h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo