Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Modélisation
Modélisation Le forum qui vous aide à résoudre vos questions relatives à la modélisation (tables et relations) de votre base de données sous Access. Pour les états et les formulaires, postez dans le forum IHM.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/10/2007, 13h41   #1
Invité de passage
 
Inscription : février 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 17
Points : 1
Points : 1
Par défaut Format de champs

Bonjour

J'essaye de créer une SGBD sous Access et me heurte à des dificultés sans doute dues à mon manque d'expérience.

Soient :
une table Clients avec RéfClient clé primaire ( numéroAuto ) au format "CL/"00000,
une table Chiens avec RéfChien clé primaire ( numéroAuto ) au format
"CH/"00000,
une table Véto avec RéfVéto clé primaire ( numéroAuto ) au format
"VE/"00
Formulaire Clients avec sous-formulaire Chiens.
Formulaire Véto renseigné par bouton macro dans Formulaire Chiens et champs NomVéto en liste de choix dans Chiens .
Tout est OK

Maintenant je veux facturer des prestations
Table Facture avec NumFacture clé primaire ( numéroAuto ) au format
"FA/"00000 et RéfClient ( Numérique ) au format ci dessus
Table Prestations avec CodePrestations clé primaire ( numéroAuto ) au format
"PR/"oo
Table Détails facture avec NumFacture et CodePrestation clés primaires pour éviter relation plusieurs à plusieurs

Toutes les tables sont en relation "un à plusieurs":
Clients ( RéfClient ) avec Factures (RéfClient),
Factures ( NumFacture ) avec Détails facture ( NumFacture ),
Détails facture ( CodePrestation ) avec Prestations ( CodePrestation )

Requête Facture ( Tables clients et Factures )
Réquête Détails facture ( Tables Détails facture et Prestations )
Formulaire Factures client ( requête Facture ) avec Sous-formulaire Détails facture ( Requête Détails facture ).

D'abord je renseigne les clients et leur chien et le véto pas de problèmes mais ensuite si je veux facturer comment appeler dans le formulaire Facture la Réfclient concernée.

J'ai tenter avec une requête et une macro de copier et coller la RéfClient de la table Clients mais j'ai un message d'erreur car il copie le "CL/" avec et le champs est numérique. je ne epeux pas changer le type de champs car il sert de relation.
Peux-t-on transformer CL/00000 en 00000 pour le coller dans le champs numérique RéfClient du Formulaire Facture client.
Merci
Comment faire lorsque les renseignements ( champs ) sur les Clients, les Chiens et les vétos sont enregistrés dans les tables respectives pour acceder au formulaire Facture
Canidé est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2007, 17h10   #2
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 941
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 941
Points : 6 283
Points : 6 283
Bonjour,

Concernant
Citation:
J'ai tenter avec une requête et une macro de copier et coller la RéfClient de la table Clients mais j'ai un message d'erreur car il copie le "CL/" avec et le champs est numérique.
tu peux dédoubler le champ RéfClient.
Dans ta requête tu aura le champ RéClient et un champ calculé (une expression) basé sur RefClient comme suit:
NumClient : 0 + [RéfClient]
NumClient est un alias de nom de champ pour faire référence à 0 + [RéfClient].

Pour accéder au formulaire Facture depuis un autre formulaire, un bouton me semble tout indiqué.
Il faut gérer l'évènement 'Sur Clic' et y associer une procédure évènementielle ou une macro qui ouvrira le formulaire Facture,
filtré sur le numéro de client.
Le filtrage se fait avec la 'condition where' qui dans ton cas devrait être
Code :
"[RéfClient]=" & [NumClient]
Bon courage
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2007, 19h04   #3
Membre Expert
 
Avatar de bernardmichel
 
Inscription : janvier 2004
Messages : 985
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 985
Points : 1 028
Points : 1 028
Envoyer un message via MSN à bernardmichel Envoyer un message via Skype™ à bernardmichel
Bonjour et bienvenue à toi sur ce forum.

Je ne sais pas si je me trompe dans ma compréhension mais, dans tes références et liaisons, je ne vois que des champs "NuméroAuto".
Or tu sais que si d'un côté tu as un champ de ce type, il doit être référencé de l'autre par un champ "Numérique, Entier Long".
A mon humble avis, le problème est posé par le format de tes champs Ref... et - à priori - il n'y a pas d'utilité à ce format. Si tu en as tout de même besoin tu peux, en suivant les conseils avisés de LedZepII, dédoubler ces champs et :
  • Pour ta propre utilisation prendre en compte les Réf... selon ton format.
  • Concernant l'intégrité de tes données et l'usage "à l'interne" de ta base, je te conseille de n'utiliser que les chiffres "bruts" créés par le NuméroAuto...
Voilà, en résumé, réfléchi bien si tu as réellement besoin de ce format.
bernardmichel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2007, 19h27   #4
Invité de passage
 
Inscription : février 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 17
Points : 1
Points : 1
Par défaut Format de champs

Bonsoir

Merci à LedzeppII et bernardmichel pour leurs réponses.

La "condition Where " n’a pas fonctionnée mais je l’ai remplacée par une macro avec un copier-coller. Grace à la modification de la requête que vous m’avez donnée tout fonctionne bien.

J’aurai aimé avoir quelques précisions au sujet du format de mes tables.
Si j’ai bien compris dans les tables et les requêtes il faut utiliser pour les références un type numéroAuto clé primaire et de format 00000 dans la première et un type numérique de même format dans celle qui est en relation et dans les formulaires et les états je peux utiliser pour ces mêmes champs un format "LL /"00000 .
Quels en sont les avantages et les inconvénients par rapport à utiliser le format "LL /"00000 partout ?

Bon maintenant que j’ai ma base de données Clients et que je suis en mesure de facturer
Je vais essayer de compléter en y ajoutant les paiements avec les modes de paiements, n° des chèques et les arrhes.

Encore merci à vous et à bientôt sur ce forum..
Canidé est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2007, 19h41   #5
Invité de passage
 
Inscription : février 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 17
Points : 1
Points : 1
Par défaut Format de champs

Rebonsoir

Un petit conseil de plus s’il vous plait :

Je me souviens avoir vu quelque part qu’il y avait une astuce concernant le prix unitaire d’un article pour ne pas affecter les anciennes factures lorsqu’il y a un changement de tarif mais je ne me rappelle plus très bien ce qu’il faut faire, pouvez vous me renseigner ?

Lorsqu’on utilise le menu de demarrage pour obtenir l’ouverture de la base sur le « menu principal » par exemple comment peut-on remodifier ce mode d’ouverture puisqu’on ne peut plus accéder à « outils » ni à beaucoup d’autres choses d’ailleurs ( encore une de mes mauvaises expériences ).
Canidé est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2007, 20h16   #6
Membre Expert
 
Avatar de bernardmichel
 
Inscription : janvier 2004
Messages : 985
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 985
Points : 1 028
Points : 1 028
Envoyer un message via MSN à bernardmichel Envoyer un message via Skype™ à bernardmichel
Hello
Alors, me concernant, je préfère - et de loin - n'utiliser que des NuméroAuto pour tous mes champs de références. Si j'ai besoin d'un numéro de facture (par exemple), je défini la valeur de ce numéro à chaque fois que je crée une facture.
A mon avis, cela me garanti une intégrité parfaite dans mes liaisons entre différentes tables (mais peut-être est-ce un leurre et le format n'influence en rien... ?) Toujours est-il que, systématiquement j'attribue le NuméroAuto d'un côté et Numérique (Entier long) de l'autre. Ceci d'autant plus que je n'ai jamais rencontré l'utilité de modifier ce format mais...

Concernant ta question concernant les factures et les PU, j'ai toujours réglé ce problème de mise à jour en important le prix auquel je facturais les prestations dans une table "tblFactures". Le problème ne se pose en effet pas seulement en cas de modification générale de prix mais également en cas de modification ponctuelle, relative par exemple à une ristourne spéciale pour un client ou pour un autre.

Et enfin, pour ta dernière question, il suffit de presser sur la touche Shift (majuscule) lors du démarrage de ton application.
bernardmichel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 11h01   #7
Invité de passage
 
Inscription : février 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 17
Points : 1
Points : 1
Par défaut Format de champs

Bonjour

La raison que je souhaite avoir des formats spécifiques et que dans ma base il y a plusieurs champs Références, 1 à chaque table et que je veux les différencier lors des sorties d'états ( factures ou statisitques) ainsi, au premier coup d'oeil, on voit de quelle référence il s'agit.

Pour le PU j'ai une table PRESTATIONS qui contient les PU mais si je sors une facture pour un client X aujourd'hui, comment faire si demain je change les PU pour ressortir ensuite cette facture à X ( en cas de perte par exemple) si les PU ont changé?
En ce qui concerne les ristournes ou autres , j'ai prévu dans la table DETAILS DES FACTURES un champs Remise .

Excuse moi mais je n'ai peut-être pas tout saisi dans ton dernier message , je taquine Access depuis peu de temps et je ne comprends pas tout le temps ce qu'il faut faire.Au départ je voulais trouver une base toute faite que j'aurai adaptée mais je n'en ai pas trouvée une, même dans les exemples du logiciel Access, qui me convienne alors je prends le taureau par les cornes et je m'attèle à la tâche.

Là où j'ai des difficultés notamment ( et j'y passe beaucoup de temps) c'est
quand j'ai une table par exemple FACTURES qui contient des factures non soldées pour un client X : comment faire lorsque X veut me payer pour retrouver la facture en question sans avoir besoin de lister toute la table FACTURES et être positionné directement à l'ouverture de la facture en question sur le contrôle qui doit recevoir le montant du règlement?
Est-il possible que ce paiement soit également enregistré dans une table PAIEMENTS qui me serait utile pour la "comptabilité"?

Merci et à bientôt
Canidé est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 11h23   #8
Membre Expert
 
Avatar de bernardmichel
 
Inscription : janvier 2004
Messages : 985
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 985
Points : 1 028
Points : 1 028
Envoyer un message via MSN à bernardmichel Envoyer un message via Skype™ à bernardmichel
Bonjour !

Afin d'éviter des confusions (il y a plusieurs questions dans ton post...), j'ai simplement commenté en bleu quelques réponses possibles à ces questions.

Citation:
Envoyé par Canidé Voir le message
La raison que je souhaite avoir des formats spécifiques et que dans ma base il y a plusieurs champs Références, 1 à chaque table et que je veux les différencier lors des sorties d'états ( factures ou statisitques) ainsi, au premier coup d'oeil, on voit de quelle référence il s'agit. Avec la méthode que je t'expose dans ma réponse, c'est exactement pareil

Pour le PU j'ai une table PRESTATIONS qui contient les PU mais si je sors une facture pour un client X aujourd'hui, comment faire si demain je change les PU pour ressortir ensuite cette facture à X ( en cas de perte par exemple) si les PU ont changé?
En ce qui concerne les ristournes ou autres , j'ai prévu dans la table DETAILS DES FACTURES un champs Remise . Alors pour le PU, tu crées un champ que tu ajoutes à cette table et tu y insères le PU usité sur le moment.

Là où j'ai des difficultés notamment ( et j'y passe beaucoup de temps) c'est quand j'ai une table par exemple FACTURES qui contient des factures non soldées pour un client X : comment faire lorsque X veut me payer pour retrouver la facture en question sans avoir besoin de lister toute la table FACTURES Dans ton formulaire de saisie des factures, tu crées un sous-formulaire avec, sous forme de tableau (feuille de données pour reprendre les termes exacts) toutes les factures ouvertes et/ou payée par ton client

et être positionné directement à l'ouverture de la facture en question sur le contrôle qui doit recevoir le montant du règlement? Dans le sous-formulaire décrit ci-dessus, tu ne fais apparaître que deux ou trois champs maximum

Est-il possible que ce paiement soit également enregistré dans une table PAIEMENTS qui me serait utile pour la "comptabilité"? La table que tu utilises pour réaliser ce sous-formulaire SERA ta "tblPaiements"
A bientôt !
bernardmichel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 11h50   #9
Invité de passage
 
Inscription : février 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 17
Points : 1
Points : 1
Par défaut Format de champs

Bien compris pour les formats

Dans mon formulaire Factures ( créer à partir d'une requête sur les tables CLIENTS et FACTURES) j'ai déja un sous-formulaire Détails facture ( créer à partir d'une requête sur les tables DETAILS FACTURE - pour éviter une relation plusieurs à plusieurs - et PRESTATIONS )
Canidé est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 14h50   #10
Invité de passage
 
Inscription : février 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 17
Points : 1
Points : 1
Par défaut Format de champs

Salut , c'est encore moi

J'ai un souci d'automatisation

Soient les tables ( avec leur relation r1 et r2) et la requête :

FACTURES
NumFacture (r1=1)– NuméroAuto – Clé primaire
RéfClient - Numérique
DateFacture
Etc.

DETAILS FACTURE
NumFacture (r1=∞)– Numérique – Clé primaire
CodeSéjour (r2=∞)– Numérique – Clé primaire
Quantité
Remise ( liste de choix entrée à la main )

SEJOURS
CodeSéjour (r2=1)– NuméroAuto - Clé primaire
Description
PrixUnitaire

REQUETE DETAILS FACTURE
NumFacture – Numérique
CodeSéjour – Numérique
Description
PrixUnitaire
Quantité
Sous total : [PrixUnitaire]*[Quantité]
Remise ( liste de choix sur table REMISES )
Total ligne : [Sous total]*(1-[Remise]/100)

Soit un Formulaire FACTURATION contenant un Sous-formulaire
DETAILS FACTURE crée à partir de la requête ci-dessus avec CodeSéjour
en liste de choix.
Comment puis-je faire pour que lorsque je choisis un CodeSéjour dans la liste de choix,
Les champs PrixUnitaire et Description soient renseignés automatiquement ?

Merci
Canidé est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 15h16   #11
Membre Expert
 
Avatar de bernardmichel
 
Inscription : janvier 2004
Messages : 985
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 985
Points : 1 028
Points : 1 028
Envoyer un message via MSN à bernardmichel Envoyer un message via Skype™ à bernardmichel
Attention à ne poster qu'une seule question par post... Merci d'avance !

Dans ta liste déroulante "CodeSéjour" que je nomme "lstCodeSéjour", tu affiches les trois champs :
CodeSéjour
PrixUnitaire
Description

Cela implique que (pour autant que tu n'aies que ces trois champs)

CodeSéjour = lstCodeSéjour.Column(0)
PrixUnitaire = lstCodeSéjour.Column(1)
Description = lstCodeSéjour.Column(2)

Donc :
Me!PrixUnitaire = Me!lstCodeSéjour.Column(1) et bien sûr...
Me!Description= Me!lstCodeSéjour.Column(2)

Est-ce que cela répond à ta question ?
bernardmichel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 09h58   #12
Invité de passage
 
Inscription : février 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 17
Points : 1
Points : 1
Par défaut Format de champs

Bonjour et merci à toi

Heu! Où je dois écrire les 5 expressions contenant le "=" citées dans ton post?
je te l'ai dit je suis un bleu .

Il y a un Hic dans ce que j'ai fait:
J'arrive à rappeler une facture par la RéfClient donc à ouvrir le Formulaire FACTURATION contenant le sous-formulaire DETAILS FACTURE et à afficher la bonne RéfClient grace à une requête et une macro contenant un copier-coller mais le NumFacture contenu dans FACTURATION ne change pas et reste le même que l'ouverture précédante et donc ne correspond pas à ce client; je ne comprends pas car ces deux champs (NuméroAuto) sont les clés primaires de leur table respective et la table CLIENTS est en relation un à plusieurs avec la table FACTURATION sur un Champs RéfClient (numérique).
Y a un truc !
Canidé est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 10h43   #13
Membre Expert
 
Avatar de bernardmichel
 
Inscription : janvier 2004
Messages : 985
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 985
Points : 1 028
Points : 1 028
Envoyer un message via MSN à bernardmichel Envoyer un message via Skype™ à bernardmichel
Hello !

J'ai un peu peur que tu te sois fourvoyé dans la conception de ton formulaire.C'est pour cela que j'ai insisté déjà à plusieurs reprises pour te dire que tu dois faire tes liaisons qu'entre un champ NuméroAuto d'un côté et un champ Numérique(Entier long) de l'autre...
Citation:
Exemple : tblClient que tu souhaites relier à tblFactures
  • Dans la tblClient, tu crées (entre autres) un champ IdClient en NuméroAuto. Cela a pour but de référencer ta "fiche client" de façon UNIQUE
  • Dans la tblFacture, tu crées un champ IdFacture en NuméroAuto (même but que ci-dessus) ET un champ IdClient en Numérique(Entier long) puis...
  • Tu relies des tables via les deux champs "IdClient" mais, d'un côté en NuméroAuto (unique) et de l'autre en Numérique (infini)
  • Pour réponde à ta question concernant les "5 expressions"...
C'est sur l'évènement Après MAJ que tu écris :
Code :
1
2
Me!PrixUnitaire = Me!lstCodeSéjour.Column(1)
Me!Description= Me!lstCodeSéjour.Column(2)
Ainsi, dès que tu sélectionnes une prestation, automatiquement, tu renseignes les champs "PrixUnitaire" & "Description" avec le contenu de ta liste déroulante.

P.S. Si tu le souhaites, tu peux joindre ta BD compressée à ton prochain post, j'y jetterai un oeil afin d'éviter que tu ne "partes faux"... Bien sûr, si elle contient des données, n'oublies pas de les supprimer
bernardmichel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 21h43   #14
Invité de passage
 
Inscription : février 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 17
Points : 1
Points : 1
Par défaut Format de champs

Bonjour,

Voici le fichier de ma Base compressé.

Les tables ne possèdent que quelques enregistrements pour la mise au point de la base, je les complèterais ensuite .

Mes problèmes :

1) Si on rentre un nouveau client par le Menu général , je ne sais pas à partir du formulaire Clients comment ouvrir le formulaire de facturation afin de facturer : je n’arrive pas à trouver un chemin à associer à un bouton.

2) Si on rentre un nouveau client par le Menu général sans le facturer de suite, quand on veut le facturer plus tard par le Menu général avec le bouton « Facturer un client », le formulaire s’ouvre sur une fenêtre vide
( exemple client 32 qui n’a pas encore de commande)

3) Si on veut facturer un client ( qui possède déjà d’autres factures) par le Menu général avec le bouton « Facturer un client », le formulaire s’ouvre bien avec la bonne référence client mais le numéro de facture ne s’incrémente pas et reste sur ne ancienne facture ( exemple client 31 ou 27)

Voilà ou j’en suis actuellement je passe beaucoup de temps sans trop de résultat et je n’ai pas terminé car ensuite j’aimerai rentrer les paiements
( avec modes de paiements chèques et espèces ) avec leurs affectations et n° des chèques.

Viendra enfin la mise au point des états .

Merci et à bientôt
Canidé est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 22h01   #15
Invité de passage
 
Inscription : février 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 17
Points : 1
Points : 1
Par défaut Format de champs

J'ai pas vu la pièce jointe, je ne suis pas certain qu'elle soit partie
Je la remets .
YES cette fois fois elle y est
Fichiers attachés
Type de fichier : zip Test.zip (168,2 Ko, 10 affichages)
Canidé est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 12h08   #16
Membre Expert
 
Avatar de bernardmichel
 
Inscription : janvier 2004
Messages : 985
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 985
Points : 1 028
Points : 1 028
Envoyer un message via MSN à bernardmichel Envoyer un message via Skype™ à bernardmichel
Hello,

Je disposais d'un peu de temps ce matin ... je t'ai donc concocté un petit exemple (dans le frmFactures)

Je pense que tu trouveras là-dedans des exemples pour de nombreuses questions que tu aurais aujourd'hui, voire demain...

Voilà, je me suis même permis un petit clin d'oeil sur le menu principal..., si jamais, c'est le mien et c'est un berger australien...
bernardmichel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2007, 17h11   #17
Invité de passage
 
Inscription : février 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 17
Points : 1
Points : 1
Par défaut Format de champs

Bonsoir

Comment fait-on pour réinitialiser tous les NuméroAuto des différentes tables.
J'ai essayé ,comme indiqué ,en recréant dans chaque table sur une nouvelle ligne un enregistrement pour remplacer celui contenant le NuméroAuto avec les mêmes caractéristiques mais la numérotation n'est pas revenue à 1.
Merci
Canidé est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2007, 18h52   #18
Membre Expert
 
Avatar de bernardmichel
 
Inscription : janvier 2004
Messages : 985
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 985
Points : 1 028
Points : 1 028
Envoyer un message via MSN à bernardmichel Envoyer un message via Skype™ à bernardmichel
Hello !

La seule technique que je connaisse consiste à vider tes tables (tu peux bien entendu les exporter dans une autre base) puis compresser ta base via le menu : Outils | Utilitaire de base de données | Compacter....

Cordialement
bernardmichel est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h50.


 
 
 
 
Partenaires

Hébergement Web