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

[WD7.5]Recherche dans une table

5 réponses
Avatar
David Berthemet
Bonjour,

J'ai un formulaire contenant une table basée sur une table Access. Je
souhaiterais effectuer une recherche sur un champ de cette table (qui est un
champ texte qui est clé unique du fichier) et me positionner sur
l'enregistrement cherché (sans filtrer la table, les autre enregistrements
devant rester visibles).
J'ai essayé via TableRecherche mais le résultat est toujours négatif. Je ne
peux pas utiliser l'option "loupe avec recherche" car cela oblige à mettre
un ascenseur proportionnel ce qui ralentit beaucoup trop l'application.

Quelqu'un aurait-il une piste à me proposer ?

merci d'avance


--
David Berthemet

"La forme même des pyramides d'Égypte montre que déjà les ouvriers avaient
tendance à en faire de moins en moins." Will Cuppy - Humoriste et
journaliste américain

5 réponses

Avatar
andré chonchon
Bonsoir,
As-tu essayer avec une variable en saisie

Dans la saisie1 :
A la ligne "à chaque modification de saisie1"

hlitrecherche(nom_fichier,index,saisie1)
tableaffiche(table_fichier,taCourantPremier)


@+
chonchon,


--- Message d'origine ---
Bonjour,

J'ai un formulaire contenant une table basée sur une table Access. Je
ouhaiterais effectuer une recherche sur un champ de cette table (qui
est un
champ texte qui est clé unique du fichier) et me positionner sur
l'enregistrement cherché (sans filtrer la table, les autre
enregistrements
devant rester visibles).
J'ai essayé via TableRecherche mais le résultat est toujours négatif. Je
ne
peux pas utiliser l'option "loupe avec recherche" car cela oblige à
mettre
un ascenseur proportionnel ce qui ralentit beaucoup trop l'application.

Quelqu'un aurait-il une piste à me proposer ?

merci d'avance


--
David Berthemet

"La forme même des pyramides d'Égypte montre que déjà les ouvriers
avaient
tendance à en faire de moins en moins." Will Cuppy - Humoriste et
journaliste américain




--
Article posté depuis le site FORUMS WINDEV® :
http://forums.wdscript.com
Une archive de plus de 120000 articles sur Windev® et Webdev®
--
Avatar
David Berthemet
> Bonsoir,



Bonsoir

> As-tu essayer avec une variable en saisie
> Dans la saisie1 :
> A la ligne "à chaque modification de saisie1"
> hlitrecherche(nom_fichier,index,saisie1)
> tableaffiche(table_fichier,taCourantPremier)

Avec hlitrecherche, je vais rechercher dans le fichier et non pas dans la
table.
Comment pourrais-je alors me positionner sur la ligne que je désire dans la
table ?

Je n'ai pas encore trouvé de solution mais j'ai compensé en réalisant une
petite procédure pour faire défiler les enregistrements de ma table "pages
visibles" par "pages visibles".

Merci pour l'aide.

Cordialement


--
David Berthemet

"La forme même des pyramides d'Égypte montre que déjà les ouvriers avaient
tendance à en faire de moins en moins." Will Cuppy - Humoriste et
journaliste américain
Avatar
Val
Bonjour

C'est très simple ...
Tu réalises une procédure qui, via une boucle, parcours la table.

Ainsi:
Ta table s'appelle TABLE1 et la colonne qui contient le champ texte sur
lequel est effectué la recherche s'appelle NOMCLIENT.
Tu recherches la valeur "MARTIN"

La procédure est la suivante

*****************
i est un entier
valeurtrouve est un booleenúux

POUR i=1 A TableOccurrence(TABLE1)
TABLE1=i
SI NOM_LIV="MARTIN" ALORS valeurtrouve=vrai; SORTIR
FIN
SI valeurtrouveúux ALORS ERREUR("Recherche infructueuse")

*****************

A toi d'organiser ensuite le processus, soit notamment:
- création d'un champ de saisie dans la fenêtre de façon à ce que
l'utilisateur puisse entrer la valeur recherchée
- création d'un bouton pour lancer le processus

Pour éviter de voir le "déplacement" dans la table pendant la recherche, tu
peux également rendre le bandeau de la table transparent au début du
processus et le réactiver seulement si la recherche a abouti

Tu vois, c'est très simple.

A+

Val



Bonjour,



J'ai un formulaire contenant une table basée sur
une table Access. Je
souhaiterais effectuer une recherche sur un champ
de cette table (qui est un
champ texte qui est clé unique du fichier) et me
positionner sur
l'enregistrement cherché (sans filtrer la table, les autre
enregistrements
devant rester visibles).
J'ai essayé via TableRecherche mais le résultat est
toujours négatif. Je ne
peux pas utiliser l'option "loupe avec recherche" car
cela oblige à mettre
un ascenseur proportionnel ce qui ralentit beaucoup
trop l'application.
Quelqu'un aurait-il une piste à me proposer ?
merci d'avance



David Berthemet


Avatar
Val
Re-Bonjour

J'ai fait une petite erreur dans mon post.
Ainsi, la colonne qui contient le champ texte sur lequel est effectuée la
recherche s'appelle NOM_LIV et pas NOMCLIENT comme indiqué par erreur.

A+

Val



"Val" a écrit dans le message de
news:409739ef$0$18320$
Bonjour

C'est très simple ...
Tu réalises une procédure qui, via une boucle, parcours la table.

Ainsi:
Ta table s'appelle TABLE1 et la colonne qui contient le champ texte sur
lequel est effectué la recherche s'appelle NOMCLIENT.
Tu recherches la valeur "MARTIN"

La procédure est la suivante

*****************
i est un entier
valeurtrouve est un booleenúux

POUR i=1 A TableOccurrence(TABLE1)
TABLE1=i
SI NOM_LIV="MARTIN" ALORS valeurtrouve=vrai; SORTIR
FIN
SI valeurtrouveúux ALORS ERREUR("Recherche infructueuse")

*****************

A toi d'organiser ensuite le processus, soit notamment:
- création d'un champ de saisie dans la fenêtre de façon à ce que
l'utilisateur puisse entrer la valeur recherchée
- création d'un bouton pour lancer le processus

Pour éviter de voir le "déplacement" dans la table pendant la recherche,


tu
peux également rendre le bandeau de la table transparent au début du
processus et le réactiver seulement si la recherche a abouti

Tu vois, c'est très simple.

A+

Val



>Bonjour,

>J'ai un formulaire contenant une table basée sur
>une table Access. Je
>souhaiterais effectuer une recherche sur un champ
> de cette table (qui est un
>champ texte qui est clé unique du fichier) et me
>positionner sur
>l'enregistrement cherché (sans filtrer la table, les autre
>enregistrements
>devant rester visibles).
>J'ai essayé via TableRecherche mais le résultat est
>toujours négatif. Je ne
>peux pas utiliser l'option "loupe avec recherche" car
>cela oblige à mettre
>un ascenseur proportionnel ce qui ralentit beaucoup
>trop l'application.
>Quelqu'un aurait-il une piste à me proposer ?
>merci d'avance

>David Berthemet




Avatar
mat
David Berthemet wrote:

> Bonsoir,

Bonsoir

> As-tu essayer avec une variable en saisie
> Dans la saisie1 :
> A la ligne "à chaque modification de saisie1"
> hlitrecherche(nom_fichier,index,saisie1)
> tableaffiche(table_fichier,taCourantPremier)

Avec hlitrecherche, je vais rechercher dans le fichier et non pas dans la
table.
Comment pourrais-je alors me positionner sur la ligne que je désire dans la
table ?



Avec tableaffiche(table_fichier,taCourantPremier) après
HLitRecherche..., le positionnement dans la table est automatique
(taCourantPremier). J'utilise cette technique régulièrement. Voir l'aide
en ligne. Si cela ne marche pas, vérifie que la table retourne la clé
unique et ne pas la ligne de table. Il est alors aussi possible
d'assigner simplement NomTable = ValeurCherchée pour positionner le curseur.