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

IHM Discussion :

Stocker les valeurs d'une zone de liste à sélection mutliple


Sujet :

IHM

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Stocker les valeurs d'une zone de liste à sélection mutliple
    Bonjour à tous,

    J'ai une zone de liste à sélection étendue ou multiple.
    Je voudrais stocker les valeurs sélectionnées de cette de zone de liste dans un champ d'une table.

    Dans mon formulaire, j'arrive bien à faire ma sélection multiple mais après enregistrement, je retrouve bien les infos de mes autres champs du formulaires mais pas mes valeurs de la zone de liste.

    En espèrant avoir été clair (ce n'est pas sûr) et si quelqu'un a une solution.

    Par avance
    Merci
    Julien

  2. #2
    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
    Il y a plusieurs solutions pour une sélection multiple mais
    les données sélectionnées sont
    - soit stockées dans 1 champ alors il y a concaténation des sélections
    - soit stockées dans une autre table, il faut alors une identification unique de l'enregistrement (NumeroAuto par exemple)
    mais cela se fait avec du code

    Avec une sélection unique, cela fonctionne parfaitement

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Stocker les valeurs d'une zonne à selection multiple
    Bonjour,
    j'ai le même besoin que jb.julien, j'ai trouvé une solution qui me semble dans un certain contexte assez intéressante.

    Description du principe
    1 .Stoker les élément sélectionnés de la zone de liste sous forme elt1*elt2 ... *eltn
    2. Sélectionner les lignes d'une zone liste correspondant aux valeurs stockées dans une table

    Pour tester ma solution
    créer
    - une table : test, champ : idtest (texte)
    - un formulaire (le nom importe peu): une zone de liste ayant pour nom liste0 et un bouton ayant pour nom enregistrer
    dans la source de données du formulaire choisissez la table test,
    le source controle de la zone de liste doit être idtest .
    le contenu de la zone de liste est à votre discrétion.
    copiez et coller le code suivant :


    Option Compare Database
    Option Explicit
    Private circuitOk As Boolean

    Private Sub enregistrer_Click()
    On Error GoTo Err_enregistrer_Click

    Dim varItm As Variant
    Dim listeDeValeur As String

    'Stockage des valeurs selectionnées séparées par le caractère '*'
    For Each varItm In Me.Liste0.ItemsSelected
    listeDeValeur = listeDeValeur & "*" & Me.Liste0.ItemData(varItm)
    Next varItm

    'Le premier caractere de la chaine n'est pas stocké
    Me.idtest = Mid(listeDeValeur, 2, Len(listeDeValeur))

    'l'utilisateur doit cliquer sur le bouton enregistrer pour valider
    'sa modification
    circuitOk = True
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70

    MsgBox "Modification enregistré"

    Exit_enregistrer_Click:
    Exit Sub

    Err_enregistrer_Click:
    MsgBox Err.Description
    Resume Exit_enregistrer_Click

    End Sub


    Private Sub Form_Open(Cancel As Integer)
    'Récupération des données stockées
    'Ce procédé fonctionne pour un seul enregistrement

    Dim tableauDeValeur() As String
    Dim i, j As Integer

    tableauDeValeur() = Split(Me.idtest, "*")
    For i = 0 To UBound(tableauDeValeur)
    For j = 0 To Me.Liste0.ListCount
    If Me.Liste0.ItemData(j) = tableauDeValeur(i) Then
    Me.Liste0.Selected(j) = True
    End If
    Next
    Next

    End Sub

    Private Sub Form_BeforeUpdate(Cancel As Integer)

    If circuitOk = False Then
    MsgBox "La mise à jour de vos données ne sera pas validée, cliquer sur le bouton enregistrer.", vbExclamation, CurrentDb.Properties!AppTitle
    Cancel = True
    Exit Sub
    End If

    End Sub

Discussions similaires

  1. [XL-2010] Comment utiliser les valeurs d'une zone de liste ou d'une combobox ?
    Par Stiard dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/11/2014, 09h09
  2. [Toutes versions] Récupérer simplement les valeurs d'une zone de liste
    Par nadgreg dans le forum Access
    Réponses: 8
    Dernier message: 15/04/2014, 09h54
  3. [AC-2007] Récuperer les valeurs d'une zone de liste
    Par Philippe LE PONT dans le forum IHM
    Réponses: 6
    Dernier message: 19/08/2011, 16h49
  4. récupérer les valeurs d'une zone de liste à sélection multiple
    Par garsflo dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 09/07/2009, 21h19
  5. Réponses: 2
    Dernier message: 31/10/2008, 09h21

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