Access 2003 condition where

Atoutage -  
 Salsero77 -
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/
Configuration: Windows XP
Firefox 2.0.0.12

6 réponses

  1. Utilisateur anonyme
     
    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
  2. Atoutage
     
    Merci Lupin

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

    Merci
    0
  3. Utilisateur anonyme
     
    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
  4. Salsero77
     
    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
    1. Atoutage
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Utilisateur anonyme
     
    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
  7. Salsero77
     
    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