Message de rapport:
 

Re: Help:Recherche Avancee dans une table

Sujet: Re: Help:Recherche Avancee dans une table
par drcharly93 sur 4/5/2004 10:46:43

Bonjour,

Une méthode consiste à créer une requête SQL.
Faire une recherche via cette requete permet de trouver l'identifiant unique de l'enregistrement recherché ou bien le premier selon le nombre de réponses existantes dans la requête.
Il faut donc qu'il y ait dans la table une colonne qui peut être non visible et qui contienne l'identifiant unique de chacun des enregistrements.

On recherchera cette identiant via la requette SQL, puis on se positionnera dans la table en fonction du premier identifiant trouvé

A noter que l'on peut rajouter un tri dans la requete SQL si nécessaire.

Création de la requête qui retrouver les enregistrements correspondant aux critères
Exemple:
nIndice est un entier
Sql est une Chaine
Rs est une source de données
sIdentifiantUniqueEtudiant est une chaine = "<Nom de la Rubrique>"
sCondition est une chaine


Sql = " SELECT "+sIdentifiantUniqueEtudiant+" AS Id FROM Etudiant "

SI CodeEtudiant <> "" alors
 sCondition = "CodeEtudiant='"+CodeEtudiant+"' "
FIN
SI AnneeInscription <> "" alors
 SI Scondition <> "" Alors sCondition += "AND "
 sCondition += "AnneeInscription='"+AnneeInsription+"' "
FIN
SI Departement <> "" Alors
 Si sCondition <> "" Alors sCondition += "AND "
 sCondition += "Departement='"+Departement+"' "
FIN

Si sCondition <> "" Alors 
 Sql += "WHERE "+scondition
FIN

SI PAS HExecuteRequeteSql(Rs,HRequeteDefaut,Sql) Alors
 Erreur(HErreurInfo)
 Retour
FIN


On va rechercher dans la table en fonction de l'identifiant du premier enregistrement correspondant aux critères de recherche
HLitPremier(Rs)
SI Pas HEndehors(Rs) Alors
 nIndice = TableCherche(<Nom de la colonne Identifiant>,Rs.Id,Faux,1)
 SI nIndice <> -1 Alors TableSelectPlus(<Nom de la table>,nIndice)
FIN


Code saisi à la volé et non testé.

On peut pousser la recherche en modifiant par exemple le signe = dans la requete SQL par d'autre signe comme >, >= ou bien LIKE
exemple de Syntaxe du LIKE
ClientNom LIKE 'DUP*'
Pour rechercher les client dont le nom commence par DUP

Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2