(REPOST) requête recherche formulaire

Le
Francoise B.
Bonjour

J'ai fait une petite base de donnes simple pour un
inventaire. J'ai un formulaire de saisie avec une
quinzaine de champs tous bass sur une mme table.

J'aimerais pouvoir faire mes recherches directement
partir des champs de ce formulaire. Je ne sais pas comment
faire ma requte dans ce cas. Et ensuite, j'aimerais
diter une liste sous forme d'tat du rsultat de la
recherche.

Je ne veux pas que visualiser le rsultat enregistrement
aprs enregistrement.

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

Merci d'avance!

Francoise
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Xavier HUE
Le #5371811
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.
Publicité
Poster une réponse
Anonyme