Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/08/2011, 16h34   #1
Membre éclairé
 
Homme Michel
Développeur informatique
Inscription : février 2008
Messages : 261
Détails du profil
Informations personnelles :
Nom : Homme Michel
Localisation : France, Hérault (Languedoc Roussillon)

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

Informations forums :
Inscription : février 2008
Messages : 261
Points : 304
Points : 304
Par défaut Recup valeur zone de liste

Bonjour,

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

Code :
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
Orion34080 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 17h11   #2
Membre du Club
 
Homme
Étudiant
Inscription : 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 : 46
Points : 46
Bonjour,

Pour feinter l'erreur je fait souvent ça :

Code :
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.
Nitsuja est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 17h19   #3
Membre éclairé
 
Homme Michel
Développeur informatique
Inscription : février 2008
Messages : 261
Détails du profil
Informations personnelles :
Nom : Homme Michel
Localisation : France, Hérault (Languedoc Roussillon)

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

Informations forums :
Inscription : février 2008
Messages : 261
Points : 304
Points : 304
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
Orion34080 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 17h34   #4
Membre du Club
 
Homme
Étudiant
Inscription : 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 : 46
Points : 46
Ah ok, j'avais mal compris effectivement, il s'agit bien d'une list box ?

L'erreur vient donc d'ici
Code :
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 ?
Nitsuja est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 17h40   #5
Membre éclairé
 
Homme Michel
Développeur informatique
Inscription : février 2008
Messages : 261
Détails du profil
Informations personnelles :
Nom : Homme Michel
Localisation : France, Hérault (Languedoc Roussillon)

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

Informations forums :
Inscription : février 2008
Messages : 261
Points : 304
Points : 304
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
Orion34080 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 17h53   #6
Membre du Club
 
Homme
Étudiant
Inscription : 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 : 46
Points : 46
Et pourquoi ne pas faire :

Code :
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.
Nitsuja est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 19h34   #7
Membre chevronné
 
Homme Alexandre Sahli
Comptable
Inscription : mars 2005
Messages : 507
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Sahli
Localisation : Suisse

Informations professionnelles :
Activité : Comptable

Informations forums :
Inscription : mars 2005
Messages : 507
Points : 628
Points : 628
bonjour,

si le problème viens du null

tu peux faire:
Code :
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.
Alexandre Sahli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 05h01   #8
Membre actif
 
Avatar de robyseb
 
Homme Sébastien
Développeur indépendant
Inscription : juillet 2011
Messages : 176
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Localisation : Canada

Informations professionnelles :
Activité : Développeur indépendant

Informations forums :
Inscription : juillet 2011
Messages : 176
Points : 192
Points : 192
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 :
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.
robyseb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 09h09   #9
Membre éclairé
 
Homme Michel
Développeur informatique
Inscription : février 2008
Messages : 261
Détails du profil
Informations personnelles :
Nom : Homme Michel
Localisation : France, Hérault (Languedoc Roussillon)

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

Informations forums :
Inscription : février 2008
Messages : 261
Points : 304
Points : 304
Par défaut simplifions donc ... et merci pour vos réponses.

La formulation que j'aurais dû employer était donc :

Code :
Compte_Cherché = Me.Selection_Compte.column(0)
au lieu de

Code :
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
Orion34080 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h58.


 
 
 
 
Partenaires

Hébergement Web