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 la sélection d'une zone de liste multiple vers une autre zone de liste


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur Géomaticien
    Inscrit en
    Juin 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur Géomaticien

    Informations forums :
    Inscription : Juin 2011
    Messages : 33
    Points : 31
    Points
    31
    Par défaut Copier la sélection d'une zone de liste multiple vers une autre zone de liste
    Bonjour,

    Je vous fait part de mon problème du jour, j'ai dans un formulaire une zone de liste multiple (liste_departement) qui contient une liste des départements français (grâce à une requête vers une table département : SELECT no_dept, nom_dept FROM departement). Je souhaiterai que lorsque le ou les départements sont sélectionnés, en appuyant sur un bouton (btn_valider_select_dept) tous les enregistrements sélectionnés soient recopier dans une zone de liste (liste_dept_selectionne) d'un autre formulaire.

    Je me suis basé sur l'aide d'access et j'ai donc commencer par recopier ce code et l'ai adapté à mes formulaires :
    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
    Private Sub btn_valider_select_dept_Click()
     
     Dim frm As Form
     Dim ctl As Control
     Dim varItm As Variant
     Dim intI As Integer
     
       Set frm = Forms!frm_select_departement
       Set ctl = frm!Liste_departement
     
       For Each varItm In ctl.ItemsSelected
     
          For intI = 0 To ctl.ColumnCount - 1
     
                 Debug.Print ctl.Column(intI, varItm)
     
            Next intI
        Next varItm
     
    End Sub
    Pour le moment tout va bien le debug.print me renvois le numéro de département et son nom pour tout les départements sélectionnés.

    Le problème vient ensuite car je n'arrive pas à copier les résultats dans une autre zone de liste (qui me servira par la suite).

    J'ai essayer un truc de ce style :

    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
    Private Sub btn_valider_select_dept_Click()
     
     Dim frm As Form
     Dim ctl As Control
     Dim varItm As Variant
     Dim intI As Integer
     
       Set frm = Forms!frm_select_departement
       Set ctl = frm!Liste_departement
     
       For Each varItm In ctl.ItemsSelected
     
          For intI = 0 To ctl.ColumnCount - 1
     
                Forms!frm_application!liste_dept_selectionne = ctl.Column(intI, varItm)
                Forms!frm_application!liste_dept_selectionne.Requery
     
            Next intI
        Next varItm
     
    End Sub

    Dans ma tête il faudrait que chaque valeur de la boucle soit copiée dans l'autre zone de liste jusqu'à ce que tout les éléments sélectionnés soient passés en revue, mais le traduire en vba j'ai du mal.
    Auriez vous des indications à me fournir ? Ccar étant novice en vba je sèche un peu.

    Merci d'avance

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur Géomaticien
    Inscrit en
    Juin 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur Géomaticien

    Informations forums :
    Inscription : Juin 2011
    Messages : 33
    Points : 31
    Points
    31
    Par défaut
    Bon j'ai continué un peu à chercher je vois d'où vient le problème mais n'arrive pas à le résoudre.

    Pour le moment j’essaie de copier ma sélection dans une zone de liste du même formulaire (de la zone de liste "Liste_departement" vers la zone de liste "liste_test" j'ai donc ce code :

    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
    Private Sub btn_valider_select_dept_Click()
     
     Dim frm As Form
     Dim ctl As Control
     Dim varItm As Variant
     Dim intI As Integer
     
       Set frm = Forms!frm_select_departement
       Set ctl = frm!Liste_departement
     
       For Each varItm In ctl.ItemsSelected
     
            For intI = 0 To ctl.ColumnCount - 1
     
            Me!liste_test = ctl.Column(intI, varItm)
     
            Next intI
        Next varItm
    Me!liste_test.Requery
    End Sub
    Lorsque je met un "debug.print liste_test" dans ma boucle il me passe bien en revu tout les enregistrements sélectionnés dans la liste "Liste_departement" (avec les 2 colonnes qu'elle contient : no_dept et nom_dept).

    Par contre lorsque je met le "debug.print liste_test" après ma boucle je m'aperçoit que seul le dernier enregistrement de la dernière colonne passé en revue est sauvegardé. Et de plus, il n'apparait pas dans ma zone de liste alors que je la met à jour "liste_test.requery".

    Il y a donc deux problèmes, d'un côté pouvoir garder dans la liste tout les enregistrements passés en revue dans la boucle de lecture (je suppose que je doit ajouter à cette boucle une commande d'enregistrement, mais je ne la connais pas :s). Et de l'autre côté pouvoir afficher les enregistrements sauvegardés dans la zone de liste (la je voit pas car d'habitude la commande .requery fonctionne).

    Je vais continuer à chercher mais auriez vous des idées pour me débloquer?
    Merci.

    Florent.

Discussions similaires

  1. Réponses: 5
    Dernier message: 12/03/2008, 18h16
  2. Comment copier une image d'un Axes vers un autre Axes
    Par miss_angel dans le forum Images
    Réponses: 1
    Dernier message: 14/02/2008, 12h56
  3. Réponses: 3
    Dernier message: 16/10/2007, 16h25
  4. lien d'un champ liste box vers une page
    Par belakhdarbts10 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 09/05/2007, 14h43
  5. copier une base d'un serveur vers un autre
    Par julien.63 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 28/03/2007, 14h18

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