PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Faire une recherche dans une combo
Faire une recherche dans une combo
Iniciado por Cox, jun., 23 2017 2:34 PM - 3 respostas
Publicado em junho, 23 2017 - 2:34 PM
Bonjour,

Je dois faire une recherche dans une combo.
Pour cela je fais une requête qui va me chercher le user courant.
Si je trouve le user dans la table de ma bdd alors je récupère son matricule et je le met par défaut en première place dans la combo.

Voici mon code :

sUser = RéseauUtilisateur()

sql="SELECT BDD_EMP.MAT FROM BDD_EMP WHERE BDD_EMP.USER = '"+sUser+"' "

HExécuteRequêteSQL(Req,hRequêteDéfaut,sql)
i = ListeOccurrence(MaCombo)
HLitPremier(Req)
SI HTrouve(Req) ALORS
ListeCherche(MaCombo,i)
MaCombo[1]=Req
FIN
HLibèreRequête(Req)
FIN


La requete fonctionne. Il passe le HTrouve.
i est bien égal à la bonne valeur.
Arrivé ici : MaCombo[1]=Req MaCombo = ""

Merci d'avance pour votre aide.
Membro registado
32 mensagems
Popularité : +10 (10 votes)
Publicado em junho, 23 2017 - 3:14 PM
Bonjour,

Vous devriez consulter l'aide pour voir comment utiliser les fonctions, notamment celles qui renvoient des valeurs (comme ListeCherche) ou qui renvoient un booléen (comme les fonctions "H").

Je vous propose ceci:

sUser est une chaîne
sRequete est une chaîne
sdResultat est une Source dede Données
i est un entier
nIndiceListe est un entier


sUser = RéseauUtilisateur()
i = ListeOccurrence(COMBO_MaCombo)

sRequete = [
SELECT
BDD_EMP.MAT
FROM BDD_EMP
WHERE BDD_EMP.USER = '%1'
]

sRequete = ChaîneConstruit(sRequete,sUser)


SI HExécuteRequêteSQL(sdResultat,hRequêteDéfaut,sRequete) ALORS
SI HLitPremier(sdResultat,hSansRafraîchir) ALORS
nIndiceListe = ListeCherche(COMBO_MaCombo,sdResultat.MAT)
COMBO_MaCombo = nIndiceListe
FIN
HLibèreRequête(sdResultat)
FIN


Cordialement,

--
Laurent P
Publicado em junho, 26 2017 - 7:48 AM
Bonjour,

Merci pour votre réponse.

Cela ne fonctionne pas, j'ai les même résultats que dans mon code ...
nIndiceListe = 1
Aucun résultat ne se met dans ma combo lors de l'exécution ...
Publicado em junho, 28 2017 - 12:43 PM
Bonjour,

En fait ce n'est pas rechercher une valeur dans une combo que vous souhaitez faire mais l'y placer ?

Car pour insérer une valeur dans une combo on peut utiliser ceci : ListeAjoute(macombo,mavaleur)

J'espère avoir bien compris votre question, sinon il y a cette page qui pourrait peut-être vous aider -> https://doc.pcsoft.fr/?1013025

Bonne journée !