Access 2003 condition where

Fermé
Atoutage - 15 févr. 2008 à 16:26
 Salsero77 - 26 févr. 2008 à 20:54
Bonjour,
Bonjour le forum

Petit problème de macro

J'ai créer une BBD me permettant d'avoir la liste de mes clients avec un récap de l'ensemble de leurs commandes.

A l'ouverture de ma BBD je souhaite afficher le formulaire "recherche client". il y a un menu déroulant me permettant de choisir un client, et un bouton me permettant d'ouvrir le formulaire Client (le but étant d'afficher l'enregistrement du client choisi).

J'ai donc créer une macro avec une cond Where, cela m'ouvre le bon formulaire mais il est vide.

Ci joint un ex

Merci


P.S. Voici le lien pour le fichier exemple

http://demo21.ovh.com/796802240c1ea67e157a90c020c74179P/
A voir également:

6 réponses

Utilisateur anonyme
15 févr. 2008 à 17:16
Bonjour,

Voici votre BD modifier !

http://membre.oricom.ca/lupin/util/client.zip


Le bouton du formulaire recherche n'est plus util, puisque j'ai accroché l'ouverture
du deuxième sur l'évènement [ Après mise à jour ].

Le champs Nom_client est accroché sur une requête, l'évènement ouvre le formulaire Client
après avoir modifier la requête du dit formulaire.

Bonne continuité !

Lupin
0
Merci Lupin

Effectivement cela fonctionne, mais pourquoi (je suis pennible) ma cond where ne fonctionne pas ?

Merci
0
Utilisateur anonyme
17 févr. 2008 à 20:20
re :

Je ne puis vous dire, étrangement je n'utilise que de façon superficiel les macros sous Access.
et n'ai jamais travaillé avec les critères de macros, utilisant toujours les requêtes SQL.

Les modules VBA étant de loin beaucoup plus performant !

Lupin
0
j'aurais aimer comprendre aussi perso car le texte de la cond Where me semble cohérent !!

Sinon pour ma part je me serait pas embêter à faire une macro : j'aurais créé un bouton sur el formulaire.
Dans l'assistant de création dans la catégorie déplacement entre enregistrement j'aurais choisis Rechercher un enregistrement et choisis le symbole des jumelles !
0
Bonjour "Salsero77"

Voici le réponse d'un autre Internaute concernant la cond Where je l'ai testé cela fonctionne mais pour être franc j'ai encore du mal à saisir la logique. Courrage donc.

"une condition WHERE est une chaîne de caractères sous la forme:
<NomChamp> <Opérateur de comparaison> <valeur>

Tu as mis :
Code :

[Formulaires]![recherche client]![Nom_client]=[Formulaires]![Client]![Nom_client]

Il n'y a pas de nom de champ. <NomChamp> doit être le nom d'un champ de la source du formulaire.

[Formulaires]![recherche client]![Nom_client] fait référence à la zone de liste modifiable "Nom_client" du formulaire "recherche client"
La condition pourrait être
Code :

[Nom_client]=[Formulaires]![recherche client]![Nom_client]

Mais la colonne liée de la zone de liste modifiable n'est pas le champ Nom_client mais le champ Ref_client.
La condition WHERE est donc
Code :

[Ref_client]=[Formulaires]![recherche client]![Nom_client]


Sinon moi aussi suis un Salsero mais de la région Bordelaise

Merci à toi et je m'en vais tester ta proposition
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
23 févr. 2008 à 15:57
Bonjour,

Je me suis penché plus sérieusement sur votre problème et j'ai "réparé" votre méthode.

Vous trouverez dans le lien de mon premier message la BD corrigé.

Voici une description de problèmes rencontré !

1.) Le formulaire [ recherche client ]
Dans les propriétés de ce formulaire, on trouve :
Source = [recherche client] ( Faux -> Le formulaire ne peut tirer ses données de lui-même )

2.) La liste déroulante du formulaire [ recherche client ]
Dans les propriétés de cette liste, on trouve :
Source de controle = [ Nom_Client] ( Laisser ce champ vide.)

J'ai donc créé une requête [ ReqListeClients ] que j'ai placé dans la propriété [ Contenu ] après avoir
choisi [ Tables/Requêtes ] dans la propriété [ Origine Source ].

La valeur [ SELECT Client.Ref_client, Client.Nom_client FROM Client; ] n'est pas conforme au formulaire !
Vous recherchez 2 valeurs et vous n'avez qu'un champs pour afficher et dans la propriété [ Largeurs Colonnes ],
vous spécifiez 3 colonnes. Trop de confusion dans ces valeurs.

Vous n'avez besoin que d'un seul champ, alors laisser la valeur [ Largeurs Colonnes ] vide.
Et la propriété [ Nombre de colonnes ] à 1.

La condition WHERE de vote macro devient :
[Client]![Nom_client]=[Formulaires]![recherche client]![Nom_client]


Alors, je vous recommande d'utiliser de façon plus systématique les requêtes pour afficher un formulaire.

La structure devrait toujours être du style :

Table -> Requête -> Formulaire/État

Bonne continuité.
Cordialement

Lupin
0
oui pour les formulaire je me base toujours sur une requête pour les construire ce qui me permet de faire apparaître des messages suivant des conditions : message : VraiFaux (date rdv =[maintenant]; "Attention RDV avec ce client";"")
0