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 :

Enregistrements des valeurs d'une liste à selection multiple


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Etudiante
    Inscrit en
    Avril 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiante
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2013
    Messages : 34
    Par défaut Enregistrements des valeurs d'une liste à selection multiple
    Bonjour à tous
    Je tiens à remercier d'avance les personnes qui accorderont du temps et se pencheront sur mon problème.
    Et je tiens également à signaler que je ne suis pas une experte en VBA, et que j'utilise depuis seulement une semaine microsoft access (version 2003), mais je me débrouille comme je peux .

    J'ai créé une base de données comportant une table nommée "Guide Recueil", ainsi que son formulaire. A l'intérieur de celui-ci, j'ai créé une liste à sélection multiple (nommée Serv)
    Jusqu'ici je n'ai rencontré aucun soucis, en revanche, pour enregistrer les valeurs sélectionnées dans ma table, ca se complexifie...
    J'ai regardé divers tutoriels et fora, et tenté quelques codes VBA.
    Je suis parvenue à enregistrer les valeurs mais de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub btnListe_Click()
     
    Dim I As Variant
    For Each I In Me.Serv.ItemsSelected
    DoCmd.RunSQL "INSERT INTO [Guide Recueil] (trait1) SELECT '" & Me.Serv.Column(0, I) & "' AS Expr1;"
    Me!Serv.Selected(I) = False
    Next I
    End Sub
    Or ici, la requête entraine autant d'enregistrements que de valeurs sélectionnées et, dans un seul et même champ.
    Par ailleurs, ça n'enregistre que les données de la liste à sélection multiple, et pas le reste du formulaire complété.

    Ce que j'aurais aimé c'est que pour un même individu (un même enregistrement), j'ai par exemple choix1 enregistré dans le champ trait1, choix2 dans le champ trait2, si pas de choix3 alors le champ trait3 est vide etc. jusqu'à trait5 (car 5choix possibles)
    Et par ailleurs, que le reste des champs complétés (Nom, Lieu etc) s'enregistrent en même temps.

    J'espère que je me suis faite comprendre, excusez-moi si mes explications ne sont pas très claires.

  2. #2
    Membre émérite
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Par défaut
    Je crois que si tu mettais ta base en pièce jointe, on pourrait mieux te comprendre et t'aider.

  3. #3
    Membre Expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 887
    Par défaut
    Bonjour Séphirée,
    mumen a raison, avec un exemple on verrait mieux. Mais de ce que je comprend ton formulaire n'est pas lié à ta table, cela se fait avec "Source" dans les propriétés du formulaire en mode création. Si c'est bien ce que tu veux, un formulaire non-lié il te faudra codé l'enregistrement de tous les champs. Pour ta liste multiple tu devras aussi changer le code, dans l'exemple suivant je suppose que choix1 est numérique si c'est du texte faudra ajouter "choix1".
    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
    Private Sub btnListe_Click()
     
        Dim db As DAO.Database
        Dim rst As DAO.Recordset
        Dim strSQL As String
        Dim I As Variant
     
        strSQL = "SELECT TaTable.* FROM TaTable;"
     
        Set db = CurrentDb
        Set rst = db.OpenRecordset(strSQL)
        rst.AddNew
            rst("Le nom du champ") = Me.[Le champ correspondant]
            For Each I In Me.Serv.ItemsSelected
            Select Case Me.Serv.Column(0, I)
                Case choix1
                    rst("trait1") = choix1
                Case choix2
                    rst("trait2") = choix2
            End Select
            Me!Serv.Selected(I) = False
            Next I
        rst.Update
        rst.Close
        Set rst = Nothing
        Set db = Nothing
    End Sub

  4. #4
    Membre averti
    Femme Profil pro
    Etudiante
    Inscrit en
    Avril 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiante
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2013
    Messages : 34
    Par défaut
    Malheureusement, j'effectue un stage en centre hospitalier, je ne peux communiquer les informations.
    Merci beaucoup pour votre aide, je vous réponds dès demain, une fois que j'aurais accès à access à mon lieu de stage, mais oui en effet il semble que le formulaire ne soit pas lié à la table, pourtant je l'ai créé à l'aide de l'assistant en spécifiant la table correspondante, mais apparemment soit le formulaire enregistrait les informations sans les choix multiples, soit les choix s'enregistraient et non pas le reste des informations...
    Je vous tiens au courant dès demain de ce qu'il en est.
    Encore merci pour votre aide!

  5. #5
    Membre averti
    Femme Profil pro
    Etudiante
    Inscrit en
    Avril 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiante
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2013
    Messages : 34
    Par défaut
    Bonjour , j'ai tenté votre code, mais malheureusement on me renvoie l'erreur de compilation suivante : type défini par l'utilisateur non défini

  6. #6
    Membre Expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 887
    Par défaut
    Bonjour Séphirée,
    C'est parce que j'avais mis choix1 etc il faut que tu remplaces par ta liste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    For Each I In Me.Serv.ItemsSelected
            Select Case Me.Serv
                Case Me.Serv.Column(0,1)
                    rst("trait1") = Me.Serv.Column(0,1)
                Case Me.Serv.Column(0,2)
                    rst("trait2") = Me.Serv.Column(0,2)
                Case etc...
            End Select
            Me!Serv.Selected(I) = False
            Next I
    De plus mon code suppose que ton formulaire n'est pas lié à une table sinon tu vas créer des doublons.

Discussions similaires

  1. Réponses: 8
    Dernier message: 02/11/2009, 13h01
  2. Réponses: 2
    Dernier message: 23/10/2009, 10h16
  3. [SQL] Problème de récupération des valeurs d'une liste multiple en php
    Par BOLARD dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 01/05/2006, 00h29
  4. [ACCESS] - Requete issue d'une liste à selection multiple
    Par fredhali2000 dans le forum Access
    Réponses: 4
    Dernier message: 22/02/2006, 15h33
  5. [HTML] faire des tabulation dans une liste <select>
    Par renofx1 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 20/01/2006, 23h36

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