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 :

[VBA]comment copier les noms selectionnés d'une zone de liste ds une table


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 63
    Points : 31
    Points
    31
    Par défaut [VBA]comment copier les noms selectionnés d'une zone de liste ds une table
    Bonjour,

    J'ai un problème qui est le suivant:

    Dans une zone de liste j'ai une série de nom. Je peux en selectionner plusieurs à la fois. J'aimerais en cliquant sur un bouton que les noms que j'ai selectionné s'affichent dans une table.

    Voici le début de mon code, mais il ne marche pas :

    Avec : CmdCreer --> Un bouton
    ListePresta --> Le nom de la zone de liste
    Presta --> Le nom de la table où je veux mettre les noms de la liste box selectionnés.
    Code --> Le champs de ma table où doivent être mis les nom
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub CmdCreer_Click()
     
    For Each a In ListePresta.ItemsSelected
       codepresta = ListePresta.ItemData(a)
       DoCmd.RunSQL "Insert into Presta(code)select""codepresta"""
     
    Next
     
    End Sub
    Merci de votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Je suppose que c'est pour ajouter une liste dans une table qui possède une relation.

    Dans le code que tu nous donnes, tu ne fait qu'ajouter les choix faits.
    Si tu as une relation dans ta DB avec une ou plusieurs tables, les enregistrement ne vont pas s'ajouter puisqu'il manque quelque chose.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    ceci fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub cmdCreer_Click()
     
     For Each A In ListePresta.ItemsSelected
       codepresta = ListePresta.ItemData(A)
       DoCmd.RunSQL "Insert into Presta(code) select " & codepresta
     Next
     
    End Sub

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 63
    Points : 31
    Points
    31
    Par défaut
    En fait la table qui contiendra les noms sélectionnés dans la zone de liste est une table qui me servira ensuite pour faire plusieurs requête.

    Le problème dans mon code c'est ce qui est en rouge :

    1 For Each a In ListePresta.ItemsSelected
    2 codepresta = ListePresta.ItemData(a)
    3 DoCmd.RunSQL "Insert into Presta(code)select 'codepresta'"

    Next

    A la ligne 2, codepresta me donne bien le nom des prestataires selectionnés mais dans la 3ème ligne le codepresta en rouge ne me donne pas le nom des prestataire. Visual basic me met dans la table 'codepresta'...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 63
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par helas
    ceci fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub cmdCreer_Click()
     
     For Each A In ListePresta.ItemsSelected
       codepresta = ListePresta.ItemData(A)
       DoCmd.RunSQL "Insert into Presta(code) select " & codepresta
     Next
     
    End Sub
    Avec ce code il m'affiche une msgBox avec le nom selectionné et un champs pour rentrer une valeur soit même mais ne me l'inscrit pas directement dans la table presta... J'avais déjà essayé

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 63
    Points : 31
    Points
    31
    Par défaut
    En fait j'ai l'impression que dans le code Sql il ne reconnaît pas le codepresta comme la valeur selectionnée dans la zone de liste...

  7. #7
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Et si tu terminais l'instruction SQL par
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 63
    Points : 31
    Points
    31
    Par défaut
    En mettant le point virgule ici :

    Private Sub cmdCreer_Click()

    For Each A In ListePresta.ItemsSelected
    codepresta = ListePresta.ItemData(A)
    DoCmd.RunSQL "Insert into Presta(code) select ; " & codepresta

    Next

    End Sub

    Ca me met l'erreur : Erreur de syntaxe dans l'instruction INSERT INTO

    Et en mettant le point virgule ici :

    Private Sub cmdCreer_Click()

    For Each A In ListePresta.ItemsSelected
    codepresta = ListePresta.ItemData(A)
    DoCmd.RunSQL "Insert into Presta(code) select" & ; codepresta

    Next

    End Sub

    Ca me met l'erreur : Erreur de compilation Attendu : Expression



    ....

  9. #9
    Membre expérimenté
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Points : 1 664
    Points
    1 664
    Par défaut
    Salut Sofie,

    Citation Envoyé par Sofie109
    En mettant le point virgule ici :

    Private Sub cmdCreer_Click()

    For Each A In ListePresta.ItemsSelected
    codepresta = ListePresta.ItemData(A)
    DoCmd.RunSQL "Insert into Presta(code) select ; " & codepresta

    Next

    End Sub

    Ca me met l'erreur : Erreur de syntaxe dans l'instruction INSERT INTO

    Et en mettant le point virgule ici :

    Private Sub cmdCreer_Click()

    For Each A In ListePresta.ItemsSelected
    codepresta = ListePresta.ItemData(A)
    DoCmd.RunSQL "Insert into Presta(code) select" & ; codepresta

    Next

    End Sub

    Ca me met l'erreur : Erreur de compilation Attendu : Expression



    ....
    Pour moi, les erreurs que tu obtiens sont évidentes car une instruction SQL se termine par un point-virgule. Ce dernier n'a pas sa place dans l'instruction! A retenir!
    Autre chose: Une instruction SQL INSERT s'écrit de la manière suivante pour ajouter un seul enregistrement:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO TableDest ( champ1, champ2, ... ) VALUES ( valeur1, valeur2, ... );
    Si on applique ceci dans ton cas, cela devrait donner un code de ce genre:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO Presta ( code ) VALUES ( '" & codepresta & "' );"

    Bon courage et @+
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici nous avons réuni théorie et pratique: Rien ne fonctionne ... et personne ne sait pourquoi!
    Albert Einstein

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 63
    Points : 31
    Points
    31
    Par défaut
    Oh miracle! Merci infiniment!! Ca marche du feu de dieu!
    Merci mille fois Mahefasoa!!

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 02/04/2010, 11h10
  2. Réponses: 2
    Dernier message: 14/07/2009, 08h45
  3. Réponses: 17
    Dernier message: 08/08/2008, 20h13
  4. Réponses: 6
    Dernier message: 06/09/2006, 14h50
  5. [VB6] largeur d'une zone de liste d'une combobox
    Par Nick13 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 28/08/2004, 12h30

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