Requete sql
samsan -
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
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.
-
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 ;)-
-
-
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 -
-
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 !
-
-
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-
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. -
-
-
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. -
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
-
-
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
-
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à ;) -
-
-
-
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 ^^
-
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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???????????
-
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.
-
-
-
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. -
-
-
-
-
-
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-
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 =""- 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.
-
-
-
-
-
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 -
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.-
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
-
-
-
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