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 :

Copier un enregistrement d'une table vers une autre contenant champ valeur multiple


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mai 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Mai 2012
    Messages : 49
    Points : 34
    Points
    34
    Par défaut Copier un enregistrement d'une table vers une autre contenant champ valeur multiple
    Bonjour,

    Et bien voila, le résumé de mon problème est dans le titre. Je n'arrive pas à trouver l'erreur dans mon code, pour pouvoir copier certains champ d'un enregistrement d'une table vers une autre table. De base, mon code fonctionne, mais ça ne fonctionne pas avec les champs à valeur multiple.

    Voici l'extrait de mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    If reponseouinon = vbYes Then
    Set rs = CurrentDb.OpenRecordset("table_B", DB_OPEN_DYNASET)
        rs.AddNew
        rs!num_candid = Me.num_candid
        rs!Nom = Me.Nom
        rs!Prénom = Me.Prénom
        rs!Mail = Me.Mail
        rs!Téléphone = Me.Téléphone
        rs!Outils = Me.Outils
        rs.Update
    Le soucis vient de "rs!Outils = Me.Outils". "Outils" étant un champ à valeur multiple.

    Tous les autres champs sont bien copié dans la seconde table.

    Où est l'erreur ??

    Par avance merci pour votre aide.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 342
    Points : 23 801
    Points
    23 801
    Par défaut
    Je pense que :

    How to: Manipulate Multivalued Fields With DAO
    http://msdn.microsoft.com/en-us/libr...ffice.12).aspx

    Devrait répondre à ta question.

    Une solution alternative est de ne pas utiliser les champs multi-valués mais une table d'associtation. Cette solution permet par exemple de faire facilement la liste de tous les candidats qui maîtrise un outil particulier.

    Ta BD ressemble alors à quelque chose comme :

    Table Candidat
    ClefCandidat
    Autres infos sur candidat

    Table Outil
    ClefOutil
    Autres infos sur outil

    Table AssCandidatOutil
    ClefAssCandidatOutil
    ClefCandidat
    ClefOutil
    Autres infos

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mai 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Mai 2012
    Messages : 49
    Points : 34
    Points
    34
    Par défaut
    Merci beaucoup, je vais tester ta première solution.

    La deuxième me parait très intéressante, mais la base étant en multi-utilisateurs, je risque d'avoir des petites surprises pour permettre aux utilisateurs d'ajouter des outils ?

    Enfin tu diras, en y pensant, j'en aurait aussi avec un champ multi-valeur...

    Pour la requête pour obtenir la liste des candidats pour un outil en particulier, j'utilise un formulaire de recherche multi-critères, avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Comme "*" & [Formulaires]![listing_candidats]![cbo_outils1] & "*"

    EDIT : Je n'y arrive toujours pas :S
    J'ai essayé :
    rs.Fields("Outils") = Me.Outils.Value
    rs.Fields("Outils") = Me.Outils
    rs.Fields("Outils").value = Me.Outils.Value
    rs.Fields("Outils").value = Me.Outils
    rs!Outils = Me.Outils
    rs!Outils = Me.Outils.value
    rs!Outils.value = Me.Outils
    rs!Outils.value = Me.Outils.value

    Mais ça me met toujours une erreur "64224" Erreur Définie par l'application ou par l'objet.

    Pourtant en mode Débug, j'ai bien une valeur qui s'affiche pour Me.outils et Me.outils.value...

    j'ai bien vérifier que mon champ "Outils" dans la table soit bien en multivaleur...

    Je ne comprends pas

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mai 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Mai 2012
    Messages : 49
    Points : 34
    Points
    34
    Par défaut
    Bonjour,

    Désolé pour le double post, mais je ne peux plus éditer mon précédent post

    J'ai réessayé ce matin, mais je ne trouve toujours pas l'erreur, malgré l'aide de marot_r

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 342
    Points : 23 801
    Points
    23 801
    Par défaut
    Je ne me serts pas des champs multivalués (personnellement je trouve que c'est un hérésie et un retour en arrière qui complique les choses).

    Ceci dit j'essairai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Comme "*Ici une valeur valide*"
    juste pour voir si cela marche.

    ensuite j'essairai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Comme "*" & CStr([Formulaires]![listing_candidats]![cbo_outils1]) & "*"
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 10h17
  2. [VB.Net] Comment copier une DataRow d'une table vers une autre ?
    Par YLF dans le forum Accès aux données
    Réponses: 7
    Dernier message: 05/09/2012, 23h23
  3. Réponses: 1
    Dernier message: 19/10/2011, 12h13
  4. Copier les enregistrements d'une table vers une table d'une autre DB
    Par karinette21 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/11/2008, 21h50
  5. copier une ligne d'une table vers une autre
    Par Adren dans le forum Langage SQL
    Réponses: 5
    Dernier message: 08/08/2006, 11h54

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