Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème d'ajout dans une liste modifiable

7 réponses
Avatar
magicbear83
Bonjour j'essai d'introduire des =E9l=E9ments dans une liste d=E9roulante
mais a chaque introduction dans la liste je me retrouve avec que des
"Vrai" au lieu d'avoir les textes issus de ma requete SQL :

SQL =3D "SELECT nom_produit FROM Produit WHERE nom_produit LIKE """ &
Me.lst_prod.Text & "%"";"
rst.Open SQL, cnx
Me.lst_prod.Value =3D Null

If Not (rst.EOF) Then
rst.MoveFirst
Do While Not (rst.EOF)
res =3D rst("nom_produit")
Me.lst_prod.AddItem res =3D res, intCurrentRow
intCurrentRow =3D intCurrentRow + 1
rst.MoveNext
Loop
End If

Je ne vois pas ou serait mon erreur...
Merci ;)

7 réponses

Avatar
Raymond [mvp]
bonjour.

faudrait préciser quelques lignes:
Me.lst_prod.Value = Null ===> pour faire quoi ?
Me.lst_prod.AddItem res = res, intCurrentRow res = res ===> pour faire
quoi ?
pourquoi gérer le intCurrentRow ? pour mettre à la fin ?

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
PowerShell, une nouvelle approche de l'administration de l'environnement
Windows
http://www.comscamp.com/Tracker/Redirect.ashx?linkid_73b247-3260-4fed-861f-bb587f7ef413


a écrit dans le message de news:

Bonjour j'essai d'introduire des éléments dans une liste déroulante
mais a chaque introduction dans la liste je me retrouve avec que des
"Vrai" au lieu d'avoir les textes issus de ma requete SQL :

SQL = "SELECT nom_produit FROM Produit WHERE nom_produit LIKE """ &
Me.lst_prod.Text & "%"";"
rst.Open SQL, cnx
Me.lst_prod.Value = Null

If Not (rst.EOF) Then
rst.MoveFirst
Do While Not (rst.EOF)
res = rst("nom_produit")
Me.lst_prod.AddItem res = res, intCurrentRow
intCurrentRow = intCurrentRow + 1
rst.MoveNext
Loop
End If

Je ne vois pas ou serait mon erreur...
Merci ;)
Avatar
magicbear83
faudrait préciser quelques lignes:

Me.lst_prod.Value = Null ===> pour faire quoi ? ===> A chaq ue
nouvelle appuie de touche je réexécute ma requête avec la nouvelle
information donc je vide ma liste
Me.lst_prod.AddItem res = res, intCurrentRow res = res ===> A rien
O.O (pardon :/)

pourquoi gérer le intCurrentRow ? pour mettre à la fin ? Il est
facultatif mais je préfère le spécifier
Avatar
Raymond [mvp]
Puisque tu vides ta liste à chaque fois pourquoi passer par le vba ?
indique directement ta requête dans le contenu :

origine source: Table/Requête
contenu : SELECT .....................;

ta clause like me parait bizarre.
--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
PowerShell, une nouvelle approche de l'administration de l'environnement
Windows
http://www.comscamp.com/Tracker/Redirect.ashx?linkid_73b247-3260-4fed-861f-bb587f7ef413


a écrit dans le message de news:

faudrait préciser quelques lignes:

Me.lst_prod.Value = Null ===> pour faire quoi ? ===> A chaque
nouvelle appuie de touche je réexécute ma requête avec la nouvelle
information donc je vide ma liste
Me.lst_prod.AddItem res = res, intCurrentRow res = res ===> A rien
O.O (pardon :/)

pourquoi gérer le intCurrentRow ? pour mettre à la fin ? Il est
facultatif mais je préfère le spécifier
Avatar
magicbear83
Puisque tu vides ta liste à chaque fois pourquoi passer par le vba ?
indique directement ta requête dans le contenu :

origine source: Table/Requête
contenu : SELECT .....................;

ta clause like me parait bizarre.


En fait je ne maitrise pas des masses QBE :-( donc je passe par VBA :-
O.
Pour le LIKE, dès que l'utilisateur commence à écrire son mot
j'utilise l'évènement "Change" de mon contrôle. A partir de là je v ais
taper dans la base pour récupérer ce qui correspond à la chaîne tap ée
dans ma liste.
D'où le LIKE "CeQueJeTape%";
Je fais une sorte d'auto complétion...Dans le menu déroulant de ma
liste j'indique à l'utilisateur les termes les plus proches ce qu'il a
commencé à taper

Avatar
Raymond [mvp]
hé bien tu te casses bien la tête.

tu indiques dans les propriétés de ta liste déroulante:
origine source: Table/Requête
Contenu : SELECT nom_produit FROM Produit ORDER BY nom_produit ;

vérifier
que la propriété auto-étendre (onglet données) soit à Oui.
que nbre colonnes (onglet format) soit à 1.
etc.. etc...

quand l'opérateur tapes des caractères, access affiche automatiquement la
première donnée dans la zone de frappe et si la liste est ouverte, access
affiche automatiquement tous les noms à partir de celui trouvé.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
PowerShell, une nouvelle approche de l'administration de l'environnement
Windows
http://www.comscamp.com/Tracker/Redirect.ashx?linkid_73b247-3260-4fed-861f-bb587f7ef413


a écrit dans le message de news:

Puisque tu vides ta liste à chaque fois pourquoi passer par le vba ?
indique directement ta requête dans le contenu :

origine source: Table/Requête
contenu : SELECT .....................;

ta clause like me parait bizarre.


En fait je ne maitrise pas des masses QBE :-( donc je passe par VBA :-
O.
Pour le LIKE, dès que l'utilisateur commence à écrire son mot
j'utilise l'évènement "Change" de mon contrôle. A partir de là je vais
taper dans la base pour récupérer ce qui correspond à la chaîne tapée
dans ma liste.
D'où le LIKE "CeQueJeTape%";
Je fais une sorte d'auto complétion...Dans le menu déroulant de ma
liste j'indique à l'utilisateur les termes les plus proches ce qu'il a
commencé à taper

Avatar
Raymond [mvp]
hé bien tu te casses bien la tête.

tu indiques dans les propriétés de ta liste déroulante:
origine source: Table/Requête
Contenu : SELECT nom_produit FROM Produit ORDER BY nom_produit ;

vérifier
que la propriété auto-étendre (onglet données) soit à Oui.
que nbre colonnes (onglet format) soit à 1.
etc.. etc...

quand l'opérateur tapes des caractères, access affiche automatiquement la
première donnée dans la zone de frappe et si la liste est ouverte, access
affiche automatiquement tous les noms à partir de celui trouvé.


--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
PowerShell, une nouvelle approche de l'administration de l'environnement
Windows
http://www.comscamp.com/Tracker/Redirect.ashx?linkid_73b247-3260-4fed-861f-bb587f7ef413


a écrit dans le message de news:

Puisque tu vides ta liste à chaque fois pourquoi passer par le vba ?
indique directement ta requête dans le contenu :

origine source: Table/Requête
contenu : SELECT .....................;

ta clause like me parait bizarre.


En fait je ne maitrise pas des masses QBE :-( donc je passe par VBA :-
O.
Pour le LIKE, dès que l'utilisateur commence à écrire son mot
j'utilise l'évènement "Change" de mon contrôle. A partir de là je vais
taper dans la base pour récupérer ce qui correspond à la chaîne tapée
dans ma liste.
D'où le LIKE "CeQueJeTape%";
Je fais une sorte d'auto complétion...Dans le menu déroulant de ma
liste j'indique à l'utilisateur les termes les plus proches ce qu'il a
commencé à taper

Avatar
magicbear83
On 30 avr, 12:44, "Raymond [mvp]"
wrote:
hé bien tu te casses bien la tête.

tu indiques dans les propriétés de ta liste déroulante:
origine source: Table/Requête
Contenu : SELECT nom_produit FROM Produit ORDER BY nom_produit ;

vérifier
que la propriété auto-étendre (onglet données) soit à Oui.
que nbre colonnes (onglet format) soit à 1.
etc.. etc...

quand l'opérateur tapes des caractères, access affiche automatiquemen t la
première donnée dans la zone de frappe et si la liste est ouverte, ac cess
affiche automatiquement tous les noms à partir de celui trouvé.

--
@+



Ragggg effectivement je me prends bien la tête -_-'

On m'a collé Access pour mon stage et bon je ne le maîtrise pas
vraiment à vrai dire :-)

En tout cas merci Raymond !! je reviendrai t'embêter ici à
l'occasion ;-)