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

Access Discussion :

Renseigner une list box à partir du champ d'une table


Sujet :

Access

  1. #1
    Membre habitué Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Points : 142
    Points
    142
    Par défaut Renseigner une list box à partir du champ d'une table
    Bonjour à tous,

    Dans une table, j'ai un champ renseigné comme ceci :

    NomFichUtil
    TARIF_CIOQ_01;TARIF_FPCPG_01
    Dans un formulaire je veux afficher les infos ci-dessus dans une listbox (Table/Requête), mais comme ci dessous

    TARIF_CIOQ_01
    TARIF_FPCPG_01
    Voici le code, mais je n'obtiens pas l'affichage escompté. Pouvez vous me dire si c'est réalisable et comment
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Lst_TarCli_AfterUpdate()
    Dim db As Database
    Dim StrSql As String
    Set db = CurrentDb
     
    StrSql = "SELECT Tbl_CompositionTarif.NomFichUtil FROM Tbl_CompositionTarif " & _
            "WHERE (((Tbl_CompositionTarif.N°_Tarif)='" & Me.Lst_TarCli & "'));"
     
    Me.Lst_ComTcli.RowSource = StrSql
     
    End Sub
    Merci d'avance,

    Daniel

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    A priori, il faudrait utiliser une requête UNION. Seulement, ceci est très gourmand en ressource. Une autre possibilité :

    Créer une table tblUtilitaire de une colonne cUtil, et deux lignes A, B

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    TARIF_CIOQ_01	TARIF_FPCPG_01
    -------------------------
    1	2
    3	4
    5	6
    On aura ton résultat avec

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT IIF(cUtil="A",TARIF_CIOQ_01,TARIF_FPCPG_01) As X
    FROM maTable, tblUtil;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    X
    --
    1
    2
    3
    4
    5
    6

  3. #3
    Membre habitué Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Points : 142
    Points
    142
    Par défaut
    Bonjour Tofalu et merci pour ta réponse,

    Mon souci supplémentaire est que la valeur du champ de ma table peut varié par exemple :

    NomFichUtil
    TARIF_CIOQ_01;TARIF_FPCPG_01;TARIF_PGR2500
    La source d'une listbox peut-être soit :

    - Table/Requête"
    - Liste de Valeur
    - Liste de champs

    et je me demandai si en choisissant liste valeur en source, je pourrai récupérer ces valeurs puisque celles-ci sont séparées par des points virgules.

    Sinon je réfléchis à ta proposition, mais compte tenu que le nombre de fichiers qui renseigne le champ de ma table peut varié, est-ce encore possible.

    Daniel

  4. #4
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Bjr,

    Oui tu peux mettre la source en "Liste de Valeur"
    Par contre la liste de valeurs est limité en taille, je ne sais plus combien, il faudrait vérifier avant si ça passe

    Ensuite pour rechercher la valeur de NomFichUtil regarde la fonction DlookUp (ou RechDom en français)

  5. #5
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    J'ai rien compris. Question pas clair du tout

  6. #6
    Membre habitué Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Points : 142
    Points
    142
    Par défaut
    Je suis désolé Tofalu, je n'emploie peut-être pas toujours les bons mots ou je m'y prend mal pour expliqué mon soucis.

    Arkham46 m'a guidé dans ma démarche et j'ai trouvé la solution à mon problème.

    Voici le 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
    Private Sub Lst_TarCli_AfterUpdate()
    Dim db As Database
    Dim Tbl As TableDefs
    Dim StrSql As String
    Dim NameTarif As String
    Set db = CurrentDb
    Set Tbl = db.TableDefs
     
     
    NameTarif = Nz(DLookup("[NomFichUtil]", "Tbl_CompositionTarif", "[N°_Tarif] ='" & Me.Lst_TarCli & "'"), "")
     
    If NameTarif = "" Or IsNull(NameTarif) Then
    Me.Lst_ComTcli.RowSource = ""
    MsgBox "Erreur !! Aucun Tarif Achat pour ce Tarif Client !!"
    Exit Sub
    End If
    Me.Lst_ComTcli.RowSource = NameTarif
    Me.Lst_ComTcli.Requery
    End Sub
    En Origine source de ma listBox j'ai renseigné à liste de valeurs et non Table/Requête et donc je peux récupérer les valeurs du champ de ma Table "Tbl_CompositionTarif" pour chaque Tarif Client.

    Est-ce plus clair ?
    Merci et toutes mes excuses Tofalu.

    Daniel

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/08/2014, 18h14
  2. Somme d'un champs dans une liste box
    Par Nitsuja dans le forum IHM
    Réponses: 3
    Dernier message: 29/07/2011, 16h13
  3. Réponses: 4
    Dernier message: 25/05/2007, 15h25
  4. [MySQL] Ajout d'options dans une liste déroulante à partir du résultat d'une requête
    Par minogttao dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 11/12/2006, 18h18
  5. [Access/VBA] Selection de champ d'une List Box
    Par elgringo2007 dans le forum Access
    Réponses: 2
    Dernier message: 26/06/2006, 15h07

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