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 :

Recup valeur zone de liste [AC-2003]


Sujet :

IHM

  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 286
    Points : 383
    Points
    383
    Par défaut Recup valeur zone de liste
    Bonjour,

    Petit problème à soumettre :
    j'ai les 3 lignes de code suivantes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Me.Selection_Compte.RowSource = StrSql
    Me.Selection_Compte.Selected(0) = True
    Compte_Cherché = Me.Selection_Compte.Value
    La première ligne remplit bien ma zone de liste (vérifié)
    La deuxième ligne selectionne bien le 1° élement de ma liste (vérifié)
    Par contre la troisième ligne plante car "Me.Selection_Compte.value" est "Null" (c'est malheureusement vérifié aussi !)

    "Selection_Compte" est le nom de ma zone de liste
    "Compte_cherché" est une variable de type String.

    Le message est : "Utilisation incorrecte de Null"

    Je voudrais en clair, récupérer la valeur du premier item (1° ligne)de "Me.Selection_Compte" dans "Compte_cherché" ... et non pas un "Null"

    Merci de m'éclairer si vous le pouvez : je bloque !
    Cordialement
    Michel

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 47
    Points : 57
    Points
    57
    Par défaut
    Bonjour,

    Pour feinter l'erreur je fait souvent ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If "" & Me.Selection_Compte.Value <> "" then
            Compte_Cherché = Me.Selection_Compte.Value
    End If
    Cependant je ne sais pas si c'est la solution "officielle"

    EDIT : Bien sur tu peux également "Catch" l'erreur.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 286
    Points : 383
    Points
    383
    Par défaut Ca ne répond pas à ma question... hélas
    Mon problème n'est pas de faire en sorte que le programme ne plante pas ou de faire en sorte de cacher l'erreur.

    Comme cet item (le premier de la liste) est sélectionné (voir 2° ligne du code)
    je voudrais dans la 3° ligne de code en récupérer la valeur... et non pas une valeur nulle.

    Merci quand même d'avoir essayé

    Michel

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 47
    Points : 57
    Points
    57
    Par défaut
    Ah ok, j'avais mal compris effectivement, il s'agit bien d'une list box ?

    L'erreur vient donc d'ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Selection_Compte.Selected(0) = True
    .
    Si tu es sûr que cette ligne selectionne bien le premier élément peut-être que la 1ère colonne du premier élément de ta liste est nul ?

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 286
    Points : 383
    Points
    383
    Par défaut Ben, oui, j'en suis sûr... je crois !
    Oui, quand cette commande s'exécute, le premier élément de ma liste (qui contient un n° de compte) se met en couleur bleue (alors qu'il était blanc auparavent.

    Il me parait donc "sélecté" ou "sélectionné"... les autres élements restant quant à eux... blancs !

    enfin, il s'agit bien d'une zone de liste (pas déroulante) qui contient un certain nombre d'éléments renseignés par la 1° ligne de mon code.

    Michel

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 47
    Points : 57
    Points
    57
    Par défaut
    Et pourquoi ne pas faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Compte_Cherché = Me.Selection_Compte.RecordSet(0)
    EDIT : Car je pense que la méthode Selected ne sélectionne pas comme un clique de souris.

  7. #7
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    bonjour,

    si le problème viens du null

    tu peux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Compte_Cherché = nz(Me.Selection_Compte.Value,"")
    Cependant je ne sais pas comment est ta zone de liste. Comporte-t-elle plusieurs colonnes? quelle est la colonne qui est sélectionnée pour les valeur?
    etc.

  8. #8
    Membre averti Avatar de robyseb
    Homme Profil pro
    Programmeur-Analyste
    Inscrit en
    Juillet 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur-Analyste
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2011
    Messages : 305
    Points : 423
    Points
    423
    Par défaut
    Bonjour premièrement enlever les accents et underscore dans les variables "Compte_Cherché"

    ne pas oublier que l'éditeur vba est anglais donc pour éviter des erreurs à long terme commençons par la base ...

    tous en étant plus explicite aussi posté la partie complète de votre code incluant les déclarations de variables, même si elle sont cité dans le message.

    donc comme Alexandre Sahli le dit nous devont dire au compilateur que si la valeur recherché est null et que la valeur ne peut l'être alors tu peut écrire :

    "CompteCherche = nz(Me.Selection_Compte,"")"
    Le NZ renvoi une valeur si null ... donc dans ce cas il renvoi ""(Vide).
    Si ont aurait mit : NZ(Me.Selection_Compte,"Aucune valeur trouvé") !!
    la variable serait alors : "Aucune valeur trouvé"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    private sub blablabla()
    dim CompteCherche as string
     
    Me.Selection_Compte.RowSource = StrSql
    Me.Selection_Compte.Selected(0) = True
    CompteCherche = nz(Me.Selection_Compte.column(0),"")
    end sub
    Donc de ce que je peut comprendre malgré le fait qu'il me manque des infos pour conclure ... si votre liste contient plusieurs éléments il faut indiquer au compilateur la valeurs que vous désirer dans cette liste.

    si votre zone de liste contient une entête il faut la prendre en compte donc la première colone sera :
    "me.Selection_Compte.column(1)" sinon .column(0)

    votre "Me.Selection_Compte.Selected(0) = True" ne sert seulement qu'à sélectionner par défaut pour l'utilisateur.
    Parfois il faut faire le tour d'une roche 10 fois avant de s'apercevoir quelle est ronde.
    • Si vous trouvé mon post intéressant, n'oubliez pas de voter coté inférieur droit du message. Merci
    • Si votre Post est indiquez le....
    • Celuil là je devait le mettre ici ....hihi -->

  9. #9
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 286
    Points : 383
    Points
    383
    Par défaut simplifions donc ... et merci pour vos réponses.
    La formulation que j'aurais dû employer était donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Compte_Cherché = Me.Selection_Compte.column(0)
    au lieu de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Compte_Cherché = Me.Selection_Compte.Value
    Puisque la première formulation me renvoie bien la valeur de l'élément sélectionné de ma liste alors que l'autre, la deuxième formulation, me renvoie un "Null" inattendu...

    Par ailleurs les accentués et les soulignements dans les noms de variables ne présentent aucun problème particulier.

    Merci à tous pour votre aide.
    Michel

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

Discussions similaires

  1. [AC-2007] Renvoyer valeur zone de liste déroulante dans requête
    Par amartik dans le forum IHM
    Réponses: 6
    Dernier message: 02/02/2010, 19h39
  2. récupérer valeur zone de liste
    Par Ledaf dans le forum IHM
    Réponses: 5
    Dernier message: 30/01/2009, 10h08
  3. Réponses: 2
    Dernier message: 29/11/2008, 11h10
  4. Réponses: 5
    Dernier message: 24/11/2008, 23h04
  5. Parcourir Valeur Zone de liste
    Par Titototi dans le forum IHM
    Réponses: 6
    Dernier message: 23/05/2008, 14h28

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