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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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"
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"