× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Bureautique
 Liste déroulante sous access 2003Sujet résolu
Ajouter un message à la discussion
Pages : [1] 2 ... Fin
Page 1 sur 2 [Fin]
jtaillon
  Posté le 29/06/2009 @ 04:10 
Aller en bas de la page 
Petite astucienne

Bonjour,

Je voudrais créer une liste déroulante afin de sélectionner une liste de choix que j'ai préalablement saisi.

Je m'explique...

J'ai une table "client".

Dans mon formulaire, j'aimerais inscrire une liste de choix en sélectionnant dans un menu déroulant afin de ne pas réinscrire tous les données préalablement saisi.

Merci!

Publicité
blut
 Posté le 29/06/2009 à 07:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Bonjour,

en mode creation, afficher les proprité de la liste deroulante,

il y a une ligne ou on saiise les valeurs il faut mettre la table client

cordialement

sourisdeservice
 Posté le 29/06/2009 à 10:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grande Maîtresse astucienne

Bonjour,

Je dirai qu'il faudtrait savoir en premier si tes valeurs sont définies une fois pour toutes, par ex. Monsieur, Madame, Mademoiselle et quelques autres, alors on tape la liste des valeurs séparées par une virgule
Ou bien, si tu vas ajouter régulièrement de nouvelles valeurs

Mat, en mettant table client ça ne va pas... Si tu es certain de ta réponse quelque chose m'échappe

Peux-tu mieux détailler

jtaillon
 Posté le 29/06/2009 à 16:49 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Oui, je vais ajouter régulièrement des nouvelles valeurs.

J'ai 5 tables principaux donc 2 sont primpordial pour la liste déroulante: Factures et Clients.

Donc, lorsque je créer une nouvelle facture à mon client, j'aimerais sélectionner dans une liste déroulante mon client déjà inscrit pour ne pas saisir à chaque fois l'information. Et je veux que l'information ne se répète pas mille fois dans ma liste déroulante mais seulement qu'une seul fois.

sourisdeservice
 Posté le 29/06/2009 à 21:29 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grande Maîtresse astucienne

Bonjour,

Peut-être que la conception de tes tables n'est pas correcte.
Si tu as une table des clients, forcément il n'y en a pas 2 semblables et tu dois avoir une clé d'index sans doublon.
Il faut utiliser une requête qui ira chercher ses informations dans plusieurs tables. C'est le numéro automatique du client qui sera mémorisé et l'affichage du nom proviendra lui de la table client

jtaillon
 Posté le 29/06/2009 à 21:48 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

J'ai créer une table NoClient contenant les champs NoClient et Nom de compagnie.

J'ai attribué une clé primaire au champs NoClient et créer une requête.

PS.: les deux champs sont indexé sans doublons et ça ne fonctionne pas.

Voici ma requête: http://cjoint.com/?gDvUkXoHfO

sourisdeservice
 Posté le 29/06/2009 à 23:03 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grande Maîtresse astucienne

Je n'ai jamais vu des relations comme celles que tu montres.
Elles devraient être créées avant la création de la requête et devraient s'afficher avec 1 d'un côté et une sorte de 8 couché du côté plusieurs

sourisdeservice
 Posté le 29/06/2009 à 23:12 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grande Maîtresse astucienne

jtaillon
 Posté le 30/06/2009 à 15:14 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Bon, j'ai vraiment besoin d'aide et je suis toute mêlé...

Voici la BD en question: http://cjoint.com/?gEpnO3Nmtl

Qu'est-ce que tu ferais avec celle-ci pour remédier au problème?

Merci

Publicité
sourisdeservice
 Posté le 30/06/2009 à 19:47 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grande Maîtresse astucienne

Bonjour,

Tu as beaucoup retravaillé mais le problème général ici que l'analyse de tes besoins n'a pas été correctement faite pour créer des tables qui peuvent stocker les données nécessaires.

Ex. Que vient faire un N° de facture dans la table client ?
Que se passera-t-il si le même client a plusieurs factures ?

Donc on va réfléchir à ce premier cas.

La table client doit contenir iuniquement les infos personnelles de ce client, nom, adresse, tél, fonction, etc

Supprime le champ N° de facture et remplace-le par un champ de numérotation automatique (FactID) et mets un index sur nom et prénom pour éviter des doublons.
Tu vas comprendre que ce N° va suivre ton client toute sa vie

Quand on créera une facture, il suffira de dire que c'est pour le client n° 3 par ex. et toutes les infos qui s'imprimeront sur la facture seront puisées dans la table client grâce à ce numéro. Tu suis ?

Dans la table avec les rubriques à facturer on mettra un champ ClientID (son numéro) et il devra être impérativement Numérique entier long
On y mettra aussi un champ N° facture (FactID)

Donc imaginons une table qui reprend les factures à établir et elle comprendra un n° automatique également (même si tu n'en vois pas encore bien la nécessité tu en mets un) un champ N° de facture si tu veux pouvoir le taper toi-même , un champ date fact, un champ Payé pour le suivi, le num de commande etc... et le plus important un champ ClientID pour relier à la table client

C'est à partir ici que tes tables étant enregistrées, tu pourras créer des relations "convenables" et définitives avec le bouton Relations
Dans la fenêtre tu verras tes tables, ou tu les ajoutes, si tu ne les vois pas clic sur le bouton Ajouter table
Quand elles là sont toutes les 2 il suffif de glisser le champ ClientID d'une table sur le même champ dans l'autre table. Un en gras sur l'autre non gras

Note en passant : éviter de faire des noms de champs qui contiennent des points, des virgules ou la barre / (Access n'aime pas ça) ni de faires des noms à rallonge

Quand tu créeras une requête, tu pourras aller chercher des champs de tes 2 (premières) tables ou de plus selon tes souhaits

Pour créer une liste de choix dans un formulaire il faudra utiliser l'Assistant liste de choix mais il faut savoir que le nouveau client(par ex.) devra impérativement avoir été introduit dans la table avant de pouvoir le sélectionner.

Fin du cours ....

Tout est dans les Relations pour que ça fonctionne

je complète : en premier prendre papier/crayon et imaginer les tables nécessaires
avec leurs différents champs
Chaque table avec non numero automatique lequel servira à aller se relier à une autre table.
La table facture aura besoin de prendre dans la table des éléments à facturer le 3e et le 5e par exemple.
Il faut donc dessiner tout cela. Mais il faudra un champ quantité dans la table facture par contre le prix unitaire à utiliser proviendra de la table des éléments.

Le sous total se calculera dans le formulaire donc pas besoin d'un champ sous-total dans aucune de tes tables;
Bien réfléchir à cela. Il ne doit pas y avoir de données redondantes



Modifié par sourisdeservice le 01/07/2009 00:32
jtaillon
 Posté le 01/07/2009 à 04:37 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Merci pour ton cours...

Voici la bd modifié: http://cjoint.com/?hbeKZqngPH

J'aimerais que tu jettes un coup d'oeil à mes relations car, je ne suis pas sur de comprendre.

sourisdeservice
 Posté le 01/07/2009 à 13:54 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grande Maîtresse astucienne

Bonjour jtailon,

Ok mais il manque une table très importante qui va relier tout cela
mais auparavent il faut modifier tes tables encore un peu
Dans la T_client enlever le champ FactID
Ajouter une clé d'indexation sur le champ Client_ID qui doit être en num auto et choisis en bas
indexé sans doublon (grâce à cela, tu le verras en gras dans le tableau des relations)

Faire de même dans les autres tables ex dans la table Factures Fact_ID servira de N° d'ordre pour les factures (num auto, indexé sans doublon)
et dans cette table un champ Client_id qui devra être obigatoirement numérique puisqu'il va se relier au bon numéro de client attribué à chaque client de la table T_Clients

Il va falloir construre une table particulière que reprendra touts les opérations à facturer à chacun des clients
on doit y trouver la liste des opérations ou prestations qui seront à facturer aux uns et aux autres
donc 1 num automatique, un champ client_id, un champ opération_id, un champ date, un champ quantité

J'avoue que j'ai un peu de peine à comprendre tes tables.
Si tu pouvais un peu décrire quels éléments doivent entrer dans tes factures et qui doivent donc provenir de tables simples du style Liste de tous les travaux à facturer avec détails et prix unitaire
Liste de mes clients, mais pour les autres Description, Détail, répertoire je m'y perd Est-ce que c'est ce que doit faire la table T_détails ?

AVIS à ceux qui suivent le sujet : Je patauge aussi beaucoup et ne suis guère experte en Access aussi vous pouvez tous intervenir. Je pense qu'au début il faut exclure VBA macro etc mais mettre au point la structure des tables

jtaillon
 Posté le 01/07/2009 à 17:54 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Une petite desciption de ce que je veux créer:
T_Clients = détail du client.
T_Expedition = adresse d’expédition de la marchandise.
T_Description_DAO = cette table doit être relié avec la table T_Facture avec le champs NoCommande.
T_Detail = description de la facture (ex. : quantité, prix unitaire, objet de la vente).
T_Facture = détail de la facture (numérotation de facture, date, etc.)
T_Repertoire_DAO = cette table est relié avec la table T_Description_DAO car il y a un champs contenant un menu déroulant (Celle-ci fonctionne très bien).

Voici le résultat final (état de la facture) : http://cjoint.com/?hbrZSLsUCE

Voici le résulat final (état du bon commande) : http://cjoint.com/?hbr0AqSKS0

Voici la BD en question: http://cjoint.com/?hbrX1qUDGa

sourisdeservice
 Posté le 02/07/2009 à 00:43 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grande Maîtresse astucienne

Re,

Je vais prendre le problème par un autre chemin
Je reçois une commande, donc besoin d'une table commande qui va reprendre un max d'infos

N° de commande (CommandeID), le client(vient de la table Client), l'adresse expédition(vient de la table expédition) (on suppose donc que les n° de tél et autres sont différents de ceux du client, sinon c'est du double emploi, (quant au champ sociéte : inutile si déjà dans table client), la date cde, la description succinte de la commande, etc... pour le suivi

pour les éléments de la commande connait-on au départ tous les détails qui seront facturés ou bien seront-ils ajoutés au fur ét à mesure. Imaginons que oui (on ne prévoit jamais tout)

Il faut une table qui va décrire chaque élément susceptible d'être facturé avec son prix

Une autre table qui reprend uniquement N° de commande et N° de l'élément
ex
commande n° 120 / détail n° 3 /quantité
commande n° 120 / détail n° 5 /quantité
commande n° 121 /détail n° 3 /quantité
commande n° 121 /détail n° 7 /quantité

Presque chaque table doit donc avoir un premier champ NomID num auto

Si je me réfère dans une table au n° de client je crée un champ ClientID qui servira de lien avec la table Clients
Il faut que dans chacune de mes tables de base je définisse une clé primaire pour que les enregistrements soient uniques

D'autre part, il est à noter que le N° de facture ne pourra être attribué qu'en fin de course au moment de la facturation dont on ignore encore la date et le N°

L'exemple que tu as réalisé en dernier ne tient toujours pas compte de tout ce que j'ai expliqué antérieurement

Access est très pointilleux et même si ça semble marcher, ce n'est pas très réglo

On ne pourra passer à l'étape suivante que lorsque les vraies et bonnes liaisons seront faites

Remarque : comment se fait-il que tu n'aie pas de clés primaires ? Access le demande lors de la création de la table.

Sur ma version, double clique sur table clients et puis sur les + à gauche et tu verras les commandes de ce client

http://cjoint.com/?hcaRwjw7ic

jtaillon
 Posté le 02/07/2009 à 15:49 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

J'ai modifié la BD: http://cjoint.com/?hcpUPp4tT5

J'ai mis T_Commande et supprimé T_Description_DAO car celle-ci était la même c'est juste qu'il y avait un nom différent.

Si je n'avais pas de clés primaires car je lui disait non. Maintenant, je comprend le problème. Merci pour ce tuyau.

Donc, si je comprend bien, tous les tables relié présentement suivront le client toutes leur vie.

Par contre, les Table facture et Détail, ne les suiveront pas?
En fait, c'est deux tables, il faut qu'il se suivent et en plus, il faut qu'il suive le client...

Merci de bien vouloir m'aider, ton aide est très apprécié.

sourisdeservice
 Posté le 02/07/2009 à 17:14 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grande Maîtresse astucienne

Re,

Attend un peu on n'a pas encore tout relié
La requête actuelle est mauvaise, supprime -la (elle se réfère à un n° de facture inexistant dans les tables actuelles et tapé arbitrairement)

Il te faut une Table de tous les éléments qui devront être facturés avec leur prix et tous renseignements liés à ce poste-là (appelons-là T_Elements)
Cette table va décrire chaque élément susceptible d'être facturé avec son prix
Cette table doit avoir son premier champ Element_ID (il n'est pas question dans cette table d'avoir de champ facture ou champ client) Que ce soit bien clair

Ensuite, il te faut une table Prestations à facturer comme décrit ci-dessous
cette table va reprendre uniquement N° de commande et N° de l'élément
ex
commande n° 1 / Elémentl n° 3 /quantité
commande n° 1 / Elément n° 5 /quantité
commande n° 2 / Elément n° 3 /quantité
commande n° 2 / Elément n° 7 /quantité

Dans cette table, inutile d'avoir N° de saisie, c'est le N° automatique de cette table qui servira

Pour tester Remplir la table élément de minimum 7 lignes
Logiquement tu dois pouvoir créer les relations necessaires et imaginer les requêtes necessaires

Pour Répertoire, j'ai pas bien compris à quoi ça sert On verra après mais ça devrait aussi certainement être relié à quelque chose

Question : Quand tu rédiges un bon de commande pour un client, y a-t-il une liste de tout ce qui peut être facturé et cela figure-t-il sur ce bon dès le début ? Dans ce cas la facture sera la copie conforme de la commande

jtaillon
 Posté le 03/07/2009 à 15:39 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Je veux juste éclaircir un peu...

Concernant la T_Element, nous allons retrouver les champs suivants: ElementID, Element et Prix. C'est bien ça? Est-ce qu'il y a une clé primaire?

Pour répertoire, c'est juste une liste déroulante ou son stoké le travail (vente) du produit. Le client aime bien avoir cet information sur le bon de commande étant donné que les produits se répète dans chaque répertoire.
http://cjoint.com/?hdpITW63ei

Concernant ta question "Quand tu rédiges un bon de commande pour un client, y a-t-il une liste de tout ce qui peut être facturé et cela figure-t-il sur ce bon dès le début ? Dans ce cas la facture sera la copie conforme de la commande", la réponse est non.

Publicité
sourisdeservice
 Posté le 03/07/2009 à 16:39 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grande Maîtresse astucienne

Bonjour,

Ne te fais pas de soucis, le bon de commande ira chercher ces éléménts dans la table éléments (oui avec clé primaire) en reliant par une table intermédiaire dont je t'ai parlé déjà 2 fois
J'ai pas compris cette notion de Répertoire. Y a--t-il beaucoup de répertoires ? si quelques uns pas besoin de table.

Un élément serait-il repris dans plusieurs répertoires différents ?
S'agit-il d'une sorte de catalogue des elements à vendre ?

Je regarderai ta MDB durant le WE. As tu vu que ma table passait bien. Il faut la compacter avec access (ça équivaut à zipper)Outils/utilitaires/compacter

jtaillon
 Posté le 03/07/2009 à 17:42 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Salut!

Concernant la table répertoire, je l'ai supprimé car j'ai créer à la place un menu déroulant dans la table T_Commande_DAO donc, ne pas tenir compte de ce point.

Voici la BD en question: http://cjoint.com/?hdrPkebDQ6

Désolé mais, je ne comprend pas vraiment la raison pour laquel tu m'as fait créer 2 tables T_Element et T_Prestation.
Est-ce que tu peux m'expliquer un peu plus?
Montre moi un exemple dans la BD ci-joint.
Merci

sourisdeservice
 Posté le 05/07/2009 à 13:43 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grande Maîtresse astucienne

Bonjour,
Je n'ai pas eu beaucoup de temps mais en 2 mots :
La table Elément doit remplacer la table Détails et donc ajoute à Elements tout ce qui manque en tenant compte de ce que j'ai dit plus haut,
Les différentes tables doivent contenir quelques données pour pouvoir tester
La table prestation est très importante puisque elle va servir à relier toutes les prestations d'une commande donnée
Essaye donc de faire les relations entre cette table et les 2 autres qui vont avec

Bonne fin de WE et bon traval

jtaillon
 Posté le 06/07/2009 à 14:54 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Je dois complètement supprimer la table Détail?

sourisdeservice
 Posté le 06/07/2009 à 16:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grande Maîtresse astucienne

Re,

oui

jtaillon
 Posté le 07/07/2009 à 17:11 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Je ne comprend pas ce que tu veux dire pour la table prestation.

Elle va servir à relier toutes les prestations d'une commande donnée.

Prestation?

Peux-tu décrire un peu plus, svp?

Merci

jtaillon
 Posté le 07/07/2009 à 19:05 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Qu'est-ce que tu as fait pour faire en sorte que dans la table Client, il y ait un petit + à côté de chaque client?

Car lorsque je crée une nouvelle table, il me demande si je veux une clé primaire et je dis oui mais il ne me met pas de +.

Pourquoi?

jtaillon
 Posté le 07/07/2009 à 19:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Ne pas tenir compte du commentaire concernant le petit +.
Je comprend maintenant que c'est avec les relations que je lui applique.
Merci

jtaillon
 Posté le 07/07/2009 à 20:08 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Bon, là je suis toute mêlé.

J'ai recommancé la bd.
J'ai seulement 3 tables (client, facture et expédition).
J'ai créer un état pour faire afficher une facture. Pourquoi que lorsque je l'affiche, rien n'apparaît?

Voici la bd: http://cjoint.com/?hhuiknwPZy

Ne pas tenir compte de la bd précédement. Je vais essayé de comprendre étape par étape.

Merci!

Publicité
Pages : [1] 2 ... Fin
Page 1 sur 2 [Fin]

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
-20%-20% sur le coin des affaires chez LDLC avec le code COTIER
Valable jusqu'au 05 Juillet

LDLC propose actuellement 20% de réduction sur son coin des affaires qui regroupe des produits neufs en fin de série ou des produits reconditionnés. N'hésitez à parcourir les différentes rubriques, il y a vraiment des choses intéressantes. Saisissez le code COTIER dans votre panier pour profiter de l'offre.


> Voir l'offre
249 €Portable 14 pouces Asus Vivobook (HD, Celeron, 4Go, SSD 64Go) à 249 €
Valable jusqu'au 07 Juillet

Amazon fait une promotion sur le PC portable 14 pouces Asus Vivobook E406MA-BV280TS qui passe à 249 € livré gratuitement alors qu'on le trouve ailleurs à partir de 349 €. Ce portable possède un écran 14 pouces HD antireflet, un processeur Intel Celeron N4000, 4 Go de RAM et un SSD de 64 Go. Le WiFi, le bluetooth et l'USB 3.0 sont de la partie. Le tout tourne sous Windows 10S que vous pouvez transformer gratuitement en Windows 10. Un abonnement d'un an à Office 365 (Word, Excel, Outlook, PowerPoint, OneNote) est également inclus. Notez que le clavier est rétroéclairé et que le pad peut se transformer en pavé numérique. Une bonne affaire pour un PC adapté à la bureautique, à Internet, .. pour un étudiant par exemple.


> Voir l'offre
164,99 €Disque dur externe USB 3.0 Seagate 8 To à 164,99 €
Valable jusqu'au 08 Juillet

Amazon propose actuellement le disque dur Seagate Expansion Desktop Drive 8 To à 164,99 € livré gratuitement alors qu'on le trouve ailleurs à partir de 200 €. Le disque est non soudé et vous pourez le récupérer pour l'utiliser dans un ordinateur, un NAS, etc. Connexion USB 3.0.


> Voir l'offre

Sujets relatifs
Liste déroulante MODIFIABLE sous ACCESS 2010
liste déroulante sous access 7
recherche et liste déroulante sous access
Access 2007 Liste déroulante avec case à cocher
Liste déroulante sous Word
liste déroulante pour publipostage word 2003
Liste déroulante Access 2000
Access resultat sur liste deroulante
Choix multiples liste déroulante Access 2007
Excel 2003 - Liste déroulante + Formules
Plus de sujets relatifs à Liste déroulante sous access 2003
 > Tous les forums > Forum Bureautique