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

(REPOST) requête recherche formulaire

1 réponse
Avatar
Francoise B.
Bonjour

J'ai fait une petite base de donn=E9es simple pour un=20
inventaire. J'ai un formulaire de saisie avec une=20
quinzaine de champs tous bas=E9s sur une m=EAme table.

J'aimerais pouvoir faire mes recherches directement =E0=20
partir des champs de ce formulaire. Je ne sais pas comment=20
faire ma requ=EAte dans ce cas. Et ensuite, j'aimerais=20
=E9diter une liste sous forme d'=E9tat du r=E9sultat de la=20
recherche.=20

Je ne veux pas que visualiser le r=E9sultat enregistrement=20
apr=E8s enregistrement.=20

Pouvez-vous m'aider svp. Je ne connais pas le vba.

Merci d'avance!

Francoise

1 réponse

Avatar
Xavier HUE
Bonjour Françoise,

Sans trop de programmation, voici ce que je te propose:

1) Construire un formulaire dans lequel tu insères tout
les champs de ta table sur lesquels tu souhaites pouvoir
faire une interrogation. Ces champs devront être
indépendant.

2) Constuire une requête basée sur ta table, reprenant les
champs à afficher, et les champs qui servent de critère de
sélection.
Dans le constructeur de requête, tu ajoutes, sur la
même ligne, et dans chacune des colonnes servant de
critère:
Comme [Formulaires]![NomFormulaireInterrogation]!
[NomChamp] ou [Formulaires]![NomFormulaireInterrogation]!
[NomChamp] Est Null

Ainsi, si par exemple ta table contient les champs
suivants:
CodeClient (Numérique)
NomClient (Texte)
VilleClient (Texte)
TelClient (Numerique)
ProspectClient (Oui/Non)

Et que ton formulaire se nomme InterrogationClient,
Tu mettras dans les colonnes de ta requête:
- Colonne CodeClient: Comme [Formulaires]!
[InterrogationClient]![CodeClient] ou [Formulaires]!
[InterrogationClient]![CodeClient] Est Null
- Colonne NomClient: Comme [Formulaires]!
[InterrogationClient]![NomClient] ou [Formulaires]!
[InterrogationClient]![NomClient]
etc.

3) Tu peux ensuite lorsque, l'utilisateur clique sur un
bouton, provoquer l'ouverture d'un formulaire de résultat
qui devra être basé sur la requête d'interrogation.

Quelques explications:
L'opérateur "Comme" permet de rechercher des chaines de
caractères dans un champ. Voici quelques exemples

Comme "BISCOTTE" équivalent à = "BISCOTTE"
Comme "BISCOTTE*" retourne tous les enregistrements
dont le champ commence par BISCOTTE. L'étoile remplace
n'importe quel(s) caractère(s)
Comme "*BISCOTTE" retourne tous les enregistrements
dont le champ se termine par BISCOTTE
Comme "*BISCOTTE*" retourne tous les enregistrements
dont le champ contient le mot BISCOTTE

Il suffira donc que l'utilisateur saisisse des * dans tous
les champs et précise des mots ou des valeurs dans les
champs à tester réellement.

Pour des champs de type Oui/non, il faudra rechercher les
valeur -1 (vrai/oui) ou 0 (faux/non).

C'est une première idée.
L'autre idée consisterait à construire dynamiquement la
clause WHERE de la requête en VBA.

Quelques recherches sur les archives du forum devrait te
donner des idées: http://minilien.com/?cwaYKAmbHw
En recherchant par exemple "formulaire de recherche"

Cordialement.