Requete sql

samsan -  
 samsan -
Bonjour,
on a créer une bdd sous access de gestion de client et on veut créer un formulaire qui permet de rechercher lles clients par leurs code national en se basant sur une requete sql qui permet de faire cette recherche(on fait entrer le code puis cliquer sur un boutton rechercher et les autres information doivent s'afficher )
svp aidez nous a trouver cette requette
merci
Configuration: Windows XP
Internet Explorer 7.0

14 réponses

Résumé de la discussion

Le besoin porte sur la recherche de clients par code national via un formulaire Access qui exécute une requête SQL et affiche les informations associées.
La solution proposée repose sur la vérification d’existence du code client en comptant les enregistrements correspondants dans la table et en affichant un message si aucun enregistrement ne correspond.
Le code VBA utilise CurrentDb et OpenRecordset sur une requête du type SELECT COUNT(table_client.code_client) AS compteur FROM table_client WHERE Code_client = Formulaires!FormChoixClient!ChoixCode, puis teste le compteur et affiche « Le code client entré est mauvais » lorsque compteur vaut zéro.
Les éléments clés sont Code_client comme champ, table_client comme table et FormChoixClient!ChoixCode comme contrôle du formulaire.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. CaPiT Messages postés 622 Statut Membre 51
     
    Bonjour,

    C'est assez simple,il y a plusieurs solutions,je t'en explique une. Voilà les étapes.
    - Tout d'abord tu crées une requête qui va te servir à lister les codes nationnaux (déjà présent dans une table j'imagine), en les regroupement pour ne pas avoir de doublon.
    La requête est : SELECT [Code_nationnal] FROM [Table_client] GROUP BY [Code_nationnal]
    - Ensuite tu crées un formulaire "FormChoixClient" en mode création.Tu crées une liste déroulante "ChoixCode" basé sur la requête précédente.
    - Tu crées une nouvelle requête qui va lister toute tes infos clients:
    SELECT [Code_nationnal],[Client] FROM [Table_client] WHERE [Client]=Formulaires!FormChoixClient!ChoixCode.
    - Tu retourne à ton formulaire "FormChoixClient" et tu crées un bouton qui lance la dernière requête.

    Tu peux évidement rajouter toutes les infos que tu as besoin dans la dernière requête et pourquoi pas créer un état pour que ce soit plus joli (sauf que le bouton devra executer le nouvel état et non la requête).

    J'espère que ça t'as aider ;)
    0
    1. samsan
       
      merci bcp pour ton aide je sais si on peux se contacter dans msn pou mieux t'expliquer la situation si c'est possible
      0
    2. CaPiT Messages postés 622 Statut Membre 51 > samsan
       
      Bah là je suis au boulot donc ça va pas être possible pour msn.
      Ce soir ce sera possible par contre. Sinon en attendant, explique moi ici plus en détail ta situation et je vais voir ce que je peux faire.
      0
    3. samsan
       
      je vai bien expliquer la situation
      bon an créer 2 formaulaire le premier c'est le principale a partir de la table clients et on veut crée un autre formulaire qui contient une zone de texte permettant de saisir le code du client et en cliquant sur un bouton rechercher les autres informatines des clients s'affichent dans le formulaire principale
      merci bcp pou ton aide
      0
    4. samsan
       
      pardon moi si j'ai commis dse fautes d'orthographe car j'essaye d'etre rapide pou gagner du temps
      0
    5. CaPiT Messages postés 622 Statut Membre 51 > samsan
       
      J'étais pas loin dans mon explication en fait sauf que j'ouvrais une seconde requête au lieu d'ouvrir le formulaire principale.

      Donc je reprends.

      Tu crées le formulaire avec la liste (basé sur la p'tite requête du début) comme je t'ai dis plus haut.
      Dans ce formulaire tu crée un bouton, et là y'a un "assistant Bouton". tu fais donc:
      - Opération sur formulaire > Ouvrir un formulaire (puis suivant)
      - Tu choisis ton formulaire principal (puis suivant)
      - Tu fais "Ouvrir le formulaire et trouver les infos spécifiques à afficher" (puis suivant)
      - Tu choisis le champs code_nationnal des 2 côtés et tu appuie sur la flêche <->.

      Voilà, ça devrait marcher !
      0
  2. samsan
     
    j'ai bien compris et je vais essayer d'appliquer ces etapes et je vais voir ce que cela donnera
    je te remercie infiniment c'est trés gentille de votre part
    0
    1. CaPiT Messages postés 622 Statut Membre 51
       
      Si tu as Access 2003 (et 2000 aussi je penses), dans la barre de menu tu vas dans "Outil", puis tu cliques sur "Démarrage..."
      A un endroit tu verras "Afficher formulaire/Page", et là tu sélectionnes dans la liste ton formulaire en question.
      Si tu ferme et réouvre ta base, ça marche (je viens de tester).

      Bonne journée, n'hésite pas pour les questions.
      0
    2. samsan > CaPiT Messages postés 622 Statut Membre
       
      merci bcp tu es dans quelle ecole?merciiiiiiiiiiiiiiiiiiiiii bien avec access 2003 c a bien marché
      tu t'appelle comment?
      0
    3. samsan > CaPiT Messages postés 622 Statut Membre
       
      pour le formlulaire rechercher il n ya pas une autre façon qui permet de saisir le code du clients dans une zone de texte au lieu e la liste déroulante
      desolé pour le dérangement
      0
    4. CaPiT Messages postés 622 Statut Membre 51 > samsan
       
      Je suis à l'école à Nantes ;)

      Pour revenir au problème, tu fais "clique droit" sur la zone de texte en question et tu fais "remplacer par zone de texte"

      Le problème qui peut se passer c'est que si tu ne tapes pas le code du clients EXACT et que tu clique sur le bouton, ça ne t'afficheras rien dans ton formulaire principal. A toi de voir.

      Bonne journée.
      0
    5. samsan > CaPiT Messages postés 622 Statut Membre
       
      1___pour le formlulaire rechercher il n ya pas une autre façon qui permet de saisir le code des clients dans une zone de texte au lieu de la liste déroulante ??????
      2___dans le formulaire principal clients on a crée un bouton sauvegarder enregistrement est ce qu'il ya une façon qui permet de sauvegarder les informations et aprés vider toutes les cases automatiquement sans ajouter un autre bouton "nouveau"
      désolé pour le derangement
      0
  3. samsan
     
    mai l'encadrant nous a demandé de créeu un boutton sauvegarder et d'afficher un message de confirmation puis les zones de texte se vident automatiquement
    0
    1. CaPiT Messages postés 622 Statut Membre 51
       
      Ok,il va falloir rajouter une ligne de code vba.

      Sur ton bouton "sauvegarder" , vas dans les proprités, ensuite sur"evenement" puis "sur click". Tu clique sur les 3 p'tits points |...| Et ça t'ouvre le vba, tu verra une ligne du style:
      DoCmd.DoMenuItem ac FormBar, ac RecordsMenu, acSaveRecord, ...

      En dessous, tu mets juste:
      DoCmd.GotoRecord , , acNewRec

      Voilà ;)
      0
    2. samsan > CaPiT Messages postés 622 Statut Membre
       
      bonjour
      on veut afficher un message(enregistrement introuvable)si le code du client n'existe pas dans la table
      merci
      0
    3. samsan > CaPiT Messages postés 622 Statut Membre
       
      bonjour
      on veut afficher un message(enregistrement introuvable)si le code du client n'existe pas dans la table
      merci
      0
    4. CaPiT Messages postés 622 Statut Membre 51 > samsan
       
      Je te répond dans quelques minutes ;)
      0
    5. CaPiT Messages postés 622 Statut Membre 51 > CaPiT Messages postés 622 Statut Membre
       
      En fait faut faire une requête SQL qui compte les code client. Si y'en a 1 c'est bon sinon ça affiche le message. Dans le code VBA de ton bouton tu mets:

      Set db = CurrentDb()
      Set res = db.OpenRecordset("SELECT COUNT(table_client.code_client) AS compteur FROM table_client WHERE (((Code_client) = " & Formulaires!FormChoixClient!ChoixCode & "));")

      If res![compteur] = 0 Then
      MsgBox ("Le code client entré est mauvais")
      End If

      Le code_client c'est le nom du champs de ta table.
      La table_client, c'est le nom de ta table ou il y a les codes client.
      Formulaires!FormChoixClient!ChoixCode, c'est le nom du code client du formulaire.

      En espérant que ça fonctionne ^^
      0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. samsan
     
    meme moi je comprend pas c'est ce qu'on m'a demandé est ce que je te renvoie ma base de données avec les nouvelles modifications???????????
    0
    1. CaPiT Messages postés 622 Statut Membre 51
       
      Erf, bah si même toi tu comprends pas je penses que je pourrais pas t'aider.

      Le mieux c'est que tu ailles voir la personne qui te demandes de faire la base de données, en lui redemandant précisement ce qu'il veut concernant la recherche par personnes. Car là ce n'est pas clair du tout.

      Pour moi le mieux est de faire deux listes comme je t'es dit plus haut. Au pire explique ça à la personne qui te demandes de faire la base de données.
      0
      1. samsan > CaPiT Messages postés 622 Statut Membre
         
        est ce que tu peux m'envoyé le code pour vider la zone de texte cin dans le formulaire recherche (en cliquant sur le boutton "rechercher" les informations s'affichent et aprés la zone de texte se vide
        0
  6. samsan
     
    daccord aide moi pour faire la liste c'est ce que je veux faire et tant pis pour lui
    0
    1. CaPiT Messages postés 622 Statut Membre 51
       
      Tu crées d'abord une requête "Choix nom" basée sur ta table ou il y a les personnes. Tu mets juste le champs "nom" auquel tu appliques un regroupement (c'est le E bizarre en haut dans ta barre des taches).

      Ensuite tu crées une requête "Choix Prénom" basée sur la même table. Là tu mets le champs "prénom" et le champs "nom". Dans les critères au niveau du champs "nom" tu mets Forms!Recherche!ChoixNom.

      Tu crées ton formulaire recherche dans le quel tu mets deux zones de liste. La première est alimentée par les noms de ta requête (Choix Nom) (tu vas dans propriété>contenu) et la deuxième par les prénoms (Choix Prénom).

      Si tu veux faire ça nickel:
      Dans ta liste "nom": Propriété après MAJ, un p'tit clic sur le bouton à trois points, générateur de code... Tu met juste un Me!ChoixPrénom.Requery dans le VBA

      Et bien sûr ensuite un bouton qui lance ton formulaire en choisissant les informations spécifiques.
      0
    2. samsan > CaPiT Messages postés 622 Statut Membre
       
      merci bcp c'est deja fait
      la question concernanat vider la zone de texte cin ???
      0
    3. CaPiT Messages postés 622 Statut Membre 51 > samsan
       
      Tu vas dans les propriété "sur click" du bouton.

      Puis dans le VBA tu mets:
      Champs = ""

      ou si ça marche pas:

      Champs.text =""
      0
    4. samsan > CaPiT Messages postés 622 Statut Membre
       
      pour la liste deroulante est ce qu'on met .text ou quoi???
      0
    5. samsan > CaPiT Messages postés 622 Statut Membre
       
      pour la liste deroulante est ce qu'on met "CHAMPS.text "ou quoi???????????????????
      0
  7. samsan
     
    slt
    voila ce que tu a dit"N'hésite pas à poser d'autres questions !"
    je croi que tu doit relire la discussion pour voir ce que tu as dit
    merci en tout cas je suis désolé pour le derangement
    au revoir
    0
    1. CaPiT Messages postés 622 Statut Membre 51
       
      J'avais pas internet aujourd"hui désolé ;)

      j'avais posté ça plus haut:

      Tu vas dans les propriété "sur click" du bouton.

      Puis dans le VBA tu mets:
      Champs = ""

      ou si ça marche pas:

      Champs.text =""
      0
      1. samsan > CaPiT Messages postés 622 Statut Membre
         
        ca n apas marché ans les 2 cas mais c pas grave
        concernant le login et le mot de passe tu as une solution???????
        0
      2. CaPiT Messages postés 622 Statut Membre 51 > samsan
         
        Ca dépend.

        Si tu veux juste protéger ta base par un mot de passe:
        - tu vas dans "outils" puis "sécurité" puis "définir un mot de passe".

        Si tu veux faire un système avec plusieurs login et mots de passe:
        -tu vas dans "outils" puis "sécurité" puis "Assistant sécurité au niveau utilisateur"

        Je te rapelle qu'avec l'aide d'Access tu trouvais directement cette info...bref.
        0
  8. samsan
     
    merci le prb est réglé
    0
    1. CaPiT Messages postés 622 Statut Membre 51
       
      Ok, met dans ton 1er ost tout en haut "probleme résolu".

      Et si tu as un autre problème tu crées un nouveau post.

      Bonne continuation. A+
      0
  9. samsan
     
    o
    mais je sais pas comment
    0
    1. CaPiT Messages postés 622 Statut Membre 51
       
      Tu remontes tout en haut de cette page. Et en haut à côté du titre de ce post tu verras:
      Statut: o Non résolu o résolu

      Puis tu coches "résolu".
      0
  10. samsan
     
    pour le prb du formulaire reccherche (recherche avancée) on a fait le formulaire avec la liste déroulante mais l'encadrant n' a pas acc"pté
    il veux une zone de texte qui permet de saisire le nom et en cliquant sur rechercher (ex on a entré un nom qui commence par b) on doit afficher dans une lzone de liste tous les noms qui commencent par b et chaque nom est un lien quand on y clique les info de cette personne doivent s afficher dans le fomulaire principal c assez complex!!!!!!!!!!!!
    c le dernier probléme!
    merci bcp
    0
  11. CaPiT Messages postés 622 Statut Membre 51
     
    Je te donnes juste une piste car j'ai jamais eut à faire ce genre de truc.

    En fait dans le formulaire_nom ou tu mets la zone de text "nom", tu mets juste un bouton qui renvoie vers le formulaire_tri_par_lettre.

    Ce dernier tu le lie à une reqûete du style
    SELECT Nom FROM table WHERE LIKE "[formulaires]![formulaire_nom]![nom]*";

    Par contre, je pense que ça ne fonctionne que si tu ne tapes qu'une seule lettre au départ.
    0
    1. samsan
       
      slt
      est ce que tu n'as pas de solution pour qu'on puisse faire le login et le mot de passe par le code vba
      pcq on nous a demandé de créer un menu d'admiistration qui permet de choisir l'utilisateur(administrateur ou un autre utilisateur) et le mot de passe bien sur mais seul l'administrateur peut effectuer des modifications sdans la base de données
      merci et désolé pour le dérangement
      0
  12. samsan
     
    ok je vais essayer *merci
    0
    1. CaPiT Messages postés 622 Statut Membre 51
       
      Normalement tu n'as pas besoin de vba.

      "Assistant sécurité au niveau utilisateur" te suffis.

      Sinon crées un nouveau post car je ne peux te répondre.
      0
      1. samsan > CaPiT Messages postés 622 Statut Membre
         
        bonjour capit est ce que tu es la??
        0
  13. samsan
     
    oui je te comprend bien mais je veux le faire avec vba afin de permettre le choix de l'utilisateurs et son type(administrateur ou utilisateur simple)ses informations sont stockés dans une table(user)
    d accord je vais demander de l aide a quelqu'un d autre mais si tu as trouvé la solution ca serai un grand plaisir pour moi
    merci bcp bcp et désolé pour le dérangement
    0