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 27/05/2007, 22h42   #1
Futur Membre du Club
 
Inscription : mai 2007
Messages : 73
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : mai 2007
Messages : 73
Points : 17
Points : 17
Par défaut conception de base de donnée

voila j'ai une base de donnée j'aimerais bien que quelqu'un puisse me faire un commentaire et critiquer ce qui ne va pas
Je voudrais que le responsable du SAV de l'entreprise puisse gérer la maintenance.

Merci d'avance pour vos réponses
Zilfi63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2007, 23h09   #2
Membre éclairé
 
Avatar de dr_feelgood
 
Patrick Gassmann
Inscription : mars 2005
Messages : 282
Détails du profil
Informations personnelles :
Nom : Patrick Gassmann
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : mars 2005
Messages : 282
Points : 329
Points : 329
J'ai rapidement ouvert ta base qui ne semble pas fonctionner...
En ouvrant le formulaire , Access demande de renseigner un champ qui s'appelle mon champ

les tables clients et machines ne comportent pas d'index auto incrémentés. C'est donc l'utilisateur de l'application qui doit donner la référence client, au risque d'erreur, car il ne sait pas ce qu'est un index.

Je te conseille fortement un index auto incrémenté , qui pourra ensuite servir de référence client, sinon ajoutes un 2e champ....
dr_feelgood est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2007, 08h34   #3
Futur Membre du Club
 
Inscription : mai 2007
Messages : 73
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : mai 2007
Messages : 73
Points : 17
Points : 17
Citation:
Envoyé par dr_feelgood
Je te conseille fortement un index auto incrémenté , qui pourra ensuite servir de référence client, sinon ajoutes un 2e champ....

En effet, l'entreprise dispose déjà d'une base de donnée avec les numéros de clients

et je vais regarder pour le champ "mon Champ" car je ne me souviens plus d'avoir mis un champ comme celle-là. De plus, Access ne me le demande jamais..


Je te remercie dr_feelgood pour ta réponse
Zilfi63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2007, 08h44   #4
Futur Membre du Club
 
Inscription : mai 2007
Messages : 73
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : mai 2007
Messages : 73
Points : 17
Points : 17
bonjour,

J'ai regardé en long et en large dans mon projet, mais je n'ai pas vu de "mon champ"

J'ai même essayé sur le poste de ma collègue mais je ne reçois pas de message comme tel !

Auriez vous d'autre conseil ?

Merci..

Cordialement
Zilfi63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2007, 12h18   #5
Membre confirmé
 
Inscription : juin 2006
Messages : 238
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 238
Points : 202
Points : 202
Bonjour,

J'ai ouvert ton appli mais je n'ai pas regardé la structure;

2 conseils de mise en forme :

1. Mets ton formulaire "Sommaire" à l'ouverture ce sera plus sympa que de tomber sur une liste d'objet et ce sera plus directement utilisable pour quelqu'un qui ne connait pas le fonctionnement ; pour cela menu Outils => Démarrage => Afficher formulaire/page

2. Personnalises tes MsgBox ; un message qui mentionne "Microsoft Office Access" dans le ruban bleu ne fait pas très fini. Si tu ne connais pas la méthode, la voici : en tête du code d'un formulaire contenant une MsgBox tu écris

Code :
1
2
Option Compare Database
Const ConNomApp = " SAV Entreprise Machin"
puis tu complètes tes MsgBox ; par exemple

Code :
MsgBox ("Fin ! Pas d'autre client qui porte ce nom.. "), , ConNomApp
N'est-ce pas plus joli ?

Je n'ai pas été plus loin dans l'examen de ta base.

Bonne journée
javelot69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2007, 12h34   #6
Membre confirmé
 
Inscription : juin 2006
Messages : 238
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 238
Points : 202
Points : 202
Re bonjour,

Au moment de fermer ton appli, j'ai trouvé à quoi correspond l'observation de dr-felgood à propos du champ "Mon Champ" : c'est le bouton "Ajouter Nouvelle Machine" du formulaire "Clients existants" qui génère cette demande ; le code fait bien référence à ce champ.

Code :
1
2
3
4
5
6
7
8
9
Private Sub Form_Open(Cancel As Integer)
 
Dim Critere As String
If Not IsNull(Me.OpenArgs) And Me.OpenArgs <> "" Then
Critere = Me.OpenArgs
End If
Me.Filter = "[MonChamp]='" & Critere & "'"
Me.FilterOn = True
End Sub
Autre chose : tes boutons "porte" sur les formulaires ne les ferment pas et ils restent sous le formulaire "Sommaire". Il faut ajouter à ton bouton.

Bonne journée
javelot69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2007, 14h02   #7
Futur Membre du Club
 
Inscription : mai 2007
Messages : 73
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : mai 2007
Messages : 73
Points : 17
Points : 17
Merci beaucoup de m'avoir répondu Javelot69
ça fait plaisir que quelqu'un prend le soin d'examiner le travail que l'on effectue..
effectivement, j'ai aplliqué ta solution avec
Citation:
, , ConNomApp
Ca fait mieux

et aurez tu une proposition à me faire pour :
Voila j'ai un formulaire dans lequel l'utilisateur va pouvoir saisir les nouvelles machines qu'ils doivent dépanner, un bouton imprimer devrait me permettre l'impression de ce formulaire avec les coordonnées du client et la nouvelle saisie effectuée.

Lorsque je fais imprimer un enregistrement, j'ai à chaque fois toutes les machines d'un client qui sont imprimées ! Comment pourrais-je modifier ce code afin qu'il m'imprime seulement la nouvelle saisie effectuée ou sinon
il peut tout de même sélection lenregistrement à imprimer, et lancer l'impression une fois sélectionnée...


Voici le code du bouton "imprimer" :

Citation:
On Error GoTo Err_Commande29_Click


DoCmd.DoMenuItem acFormBar, 4, , acMenuVer20
DoCmd.PrintOut acSelection

Exit_Commande29_Click:
Exit Sub

Err_Commande29_Click:
MsgBox Err.Description
Resume Exit_Commande29_Click

End Sub
Merci...
Zilfi63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2007, 17h02   #8
Membre confirmé
 
Inscription : juin 2006
Messages : 238
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 238
Points : 202
Points : 202
Bonjour,

Content que ma suggestion de personnalisation de MsgBox t'ai servie ; penses aussi aux autres suggestions (notamment la fermeture de tes formulaires lors du clic sur le bouton porte). Dans l'état actuel de ta base, je suppose que la nouvelle saisie n'est pas enregistrée tant que le formulaire n'est pas fermé.

Au sujet de ta nouvelle demande : je suis toujours surpris lorsque quelqu'un mentionne l'impression d'un formulaire (ne le prends pas mal ). Un formulaire n'est pas fait pour être imprimé mais pour une visualisation ; c'est pour cela qu'il doit être "confortable" ; il sert à saisir, consulter ... mais pas à être envoyé à l'imprimante. D'ailleurs avec l'agrandissement des écrans, bien des formulaires sont plus grands qu'une feuille A4 ; de plus il est courant de mettre des couleurs sur un formulaire ; quel sera le réultat de l'impression avec une laser NB ? Si les couleurs sont sombres, le texte sera illisible.

Dans Access un document destiné à être imprimé est un état ; c'est ce qu'il faut que tu fasses. Cet état sera basé sur une requête qui sélectionnera ce qui est à imprimer concernant ton client et la machine qui a fait l'objet de la saisie d'information qui t'intéresses. Ton bouton sur le formulaire déclenchera l'impression de ton état qui doit être dimensionné pour une feuille A4 (ou A3 si tu imprimes dans ce format).

Bonne continuation
javelot69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 08h43   #9
Futur Membre du Club
 
Inscription : mai 2007
Messages : 73
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : mai 2007
Messages : 73
Points : 17
Points : 17
Bonjour,

j'avais déjà fais un état mais il m 'affichait simplement les données du client et les machines qu'ils avaient ramené ! evidemment, cela est causé de ma requete qui recherchait le client avec une requete parametrée, et toutes les machines qui lui appartiennent

Je propose la requête suivante :
Citation:
SELECT CLIENT1.NoCli, CLIENT1.NomCli, CLIENT1.PnomCli, CLIENT1.AdrCli, CLIENT1.CPCli, CLIENT1.VilleCli, CLIENT1.TélCli, CLIENT1.Tél_portCli, CLIENT1.TypeCli, CLIENT1.PanneConstat, MACHINE.RéfMach, MACHINE.DésMach, MACHINE.DateArriv, MACHINE.Garantie, MACHINE.NoSerie, MACHINE.MatOu, MACHINE.DevisMach, MACHINE.LibelEtat, MACHINE.CommTechnicien, MACHINE.Accesoire, MACHINE.MarqueMach, MACHINE.DateFin, MACHINE.NoBL, [Plafond Autorisation].LibelAuto
FROM [Plafond Autorisation] INNER JOIN (Devis INNER JOIN (CLIENT1 INNER JOIN MACHINE ON CLIENT1.NoCli = MACHINE.NoCli) ON Devis.DevisMach = MACHINE.DevisMach) ON [Plafond Autorisation].NumAuto = Devis.numAuto
WHERE (((CLIENT1.NomCli)=[Quel est le nom du client à rechercher ?]) AND ((MACHINE.DateArriv)=[Quelle est la date d'arrivée ?]));

Merci beaucoup ca m'a rassuré sur mon idée de faire l'état
Zilfi63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h40.


 
 
 
 
Partenaires

Hébergement Web