1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
// pCombo correspond à la valeur saisie dans la combo
sSaisie est chaîne = pCombo
// Si la saisie ne fait pas plus de 2 caractères, je ne fais pas de recherche
SI sSaisie = "" _OU_ Taille(sSaisie) < 2 ALORS RETOUR
Sablier(Vrai)
// Requête SQL qui sera exécutée
sSQL est chaîne = "SELECT COMposants.IDCOMposants AS ID, COMposants.COM_Code AS Code WHERE MATCH(COMposants.COM_Code) AGAINST %1"
// Préparation du paraètre de la requête pour le MATCH
sSaisieTraitement est chaîne
POUR TOUTE CHAÎNE sMot DE sSaisie SEPAREE PAR " "
sSaisieTraitement += "+" + sMot + "*"
FIN
sSQL = ChaîneConstruit(sSQL, "('" + sSaisieTraitement + "')")
ListeSupprimeTout(pCombo)
maSourceSQL est une Source de Données
SI HExécuteRequêteSQL(maSourceSQL, hRequêteDéfaut, sSQL) ALORS
iCpt est entier
POUR TOUT maSourceSQL
iCpt++
ListeAjoute(pCombo, gPoliceGras(Vrai) + maSourceSQL.Code + gPoliceGras(Faux) + " - " + ExtraitChaîne(maSourceSQL.Libellé, 1, RC))
// Affichage trop long au delà
SI iCpt = 5000 ALORS SORTIR
FIN
FIN
Sablier(Faux)
ComboOuvre(pCombo) |