[ACCESS] Aide pour projet de fac...

Aide pour projet de fac... [ACCESS] - SQL/NoSQL - Programmation

Marsh Posté le 05-12-2006 à 16:47:11    

:hello:  à tous!
 
J'espere poster dans la bonne section  :ange:  
 
Voici mon (mes) problème(s), je dois faire un petit projet (rien de bien savant mais bon faut bien débuter  [:burtonsnowboard] ) pour mon UE "conception et interrogation de bdd" et vue qu'un peu de zelle ne fait de mal a personne j'essaie de regler quelques détails qui nécessite des connaissance qui ne sont pas dans le cours...
Je m'en retourne donc vers vous les pro de la bdd pour demander de l'aide  :D .
 
Voici ma première question:
 
Je voudrais savoir comment utiliser la fonction "valeur si" et "message si erreur".  
 
En fait dans une table véhicule, je dois rentre la propriété type de vehicule ({"camion";"voiture"}, puis selon le type de vehicule le poid (si c'est un camion) ou la puissance (si c'est une voiture).
 
Je pense donc qu'il faut faire une manip de ce style:
Tester si la valeur de type de véhicule et puis selon si c'est un camion ou une voiture obliger la saisie du poids ou de la puissance.
 
Ceci peut parraitre enfantin pour certain d'entre vous mais je n'ai pas trouver de tuto dessu (je ne suis pas non plus un pro de google  :whistle: )
 
Voilà merci d'avance  :jap:  
 
Ps: je fais mon projet sur access 2003 et à ma fac on travail sur le 97 [:k@nt] y a-t-il des problèmes de compatibilité?

Reply

Marsh Posté le 05-12-2006 à 16:47:11   

Reply

Marsh Posté le 05-12-2006 à 19:49:58    

Si je suis d'accord avec ta démarche, je ne peux malheureusement pas t'aider, car quand on "programme" (pour de vrai) on ne bidouille pas avec les forumlaire Excel, on utilise plutôt un langage de programmation (ne serait-ce que du VBA, que génèrent de toute façon tes actions sur les formulaires).
 
A partir de là, tu risques d'avoir peu d'aide...
 
Sinon, d'entrée de jeu, si tu dev avec Access 2003, ne compte surtout pas que ce genre de traîtements passent dans Access 97. Au mieux, ça plantera de partout et tu n'auras qu'à repasser quelques heures à tout corriger, au pire, tu ne pourras carrément pas ouvrir le fichier.
 
Désolé de ne pas pouvoir t'aider plus. Bon courage en tout cas !

Reply

Marsh Posté le 05-12-2006 à 23:41:44    

Je serais moins négatif que MagicBuzz, car j'utilise reltivement souvent Excel et Access, et les plantages sont très rares.
A mon avis, le problème essentiel de ces logiciels est la très mauvaise qualité de la documentation, qui est sensée être comblée par des livres complémentaires et des cours.
 
Mais pour la questions précise, je ne comprends pas bien de quoi il s'agit.
Combien y a t-il de tables ? Je vois, une table des types de véhicule, mais y a-t-il aussi une table des poids et une table des puissances ? Comment sont organisées les données ?
 
A priori, je ferais une seule table avec les colonnes suivantes :
 
- vehicule_id, numero automatique
- vehicule_lib, chaine de caractères
- type_camion_voiture, chaine de caractères
- poids, nombre
- puissance, nombre
 
Ensuite, je ferais des sélections avec des reqêtes SQL, par exemple :
Select vehicule_lib where type_camion="Camion" and poids > 1500;
 
Select

Reply

Marsh Posté le 06-12-2006 à 09:40:43    

olivthill a écrit :

Je serais moins négatif que MagicBuzz, car j'utilise reltivement souvent Excel et Access, et les plantages sont très rares.


Je ne dis pas du tout que ça plante.
 
Au contraire, Access est un formidable outil pour faire des petites applications perso, ou dans le cadre de l'informatique d'une PME/PMI. On dispose d'un outil formidablement puissant, dont les limitations ne gênent pas du tout si peu d'acteurs s'en servent et que le volume de données sont faibles.
 
Par contre (et c'est pas un reproche fait à Access particulièrement), espérer faire tourner une appli Access 2003 avec Access 97, c'est comme vouloir faire tourner une appli C# 2.0 avec le FrameWork 1.1 : ça marche pas. Dans l'autre sens, ça marche certainement (et encore, pas toujours), mais en aucun cas on ne peut espérer qu'une application "ancienne" puisse supporter sans problème des fichiers écrits avec une appli plus récente.

Reply

Marsh Posté le 06-12-2006 à 09:44:05    

olivthill a écrit :

A priori, je ferais une seule table avec les colonnes suivantes :
 
- vehicule_id, numero automatique
- vehicule_lib, chaine de caractères
- type_camion_voiture, chaine de caractères
- poids, nombre
- puissance, nombre
 
Ensuite, je ferais des sélections avec des reqêtes SQL, par exemple :
Select vehicule_lib where type_camion="Camion" and poids > 1500;


 
Pendant qu'on est dans la dénormalisation du MCD, autant y aller franchement :
puissance et poids étant deux nombres, et que leur présence est exclusive (l'un OU l'autre, jamais les deux, mais obligatoirement un), alors tu remplaces les champs "poids" et "puissance" par un champ "valeur" de type numérique et n'acceptant pas les valeurs nulles. grace au champ "type_camion_voiture" ("type" tout court c'est mieu, un jour tu voudra peut-être mettre des bus par exemple) te permet déjà de savoir si "valeur" est un poids ou une puissance.
 
cependant, c'est de la dénormalisation. selon le prof, ça peut aussi bien rapporter un max de points parceque "l'astuce est bien vue", tout comme ça peut faire un 0 pointé parceque ça ne respecte pas les cours d'UML ou de MERISE.
c'est la grande différence entre la fac et l'entreprise : dans le premier cas, on veut la solution la meilleure et la plus normalisée possible, tandis que dans la seconde, on peut la plus performante et la moins onéreuse possible.


Message édité par MagicBuzz le 06-12-2006 à 09:45:57
Reply

Marsh Posté le 06-12-2006 à 09:51:38    

olivthill a écrit :

A mon avis, le problème essentiel de ces logiciels est la très mauvaise qualité de la documentation, qui est sensée être comblée par des livres complémentaires et des cours.


Au contraire, je trouve la doc plutôt bien foutue...

Reply

Marsh Posté le 06-12-2006 à 09:53:57    

FlorentG a écrit :

Au contraire, je trouve la doc plutôt bien foutue...


pas pour tout...
 
cherche juste comment convertir une date dans un autre format dans la doc, moi j'ai jamais trouvé. j'ai du installer VB6 pour trouver la doc de format() :o

Reply

Marsh Posté le 06-12-2006 à 09:54:37    

Euh... la doc de format y est parfaitement, hein [:johneh] Bien détaillée et complète :??:

Reply

Marsh Posté le 06-12-2006 à 10:02:59    

pas dans ma version d'Excel en tout cas :o


Message édité par MagicBuzz le 06-12-2006 à 10:03:07
Reply

Marsh Posté le 06-12-2006 à 10:03:52    

Ah :o Le plus gros problème avec la doc par contre, c'est l'installation, t'es jamais sûr d'avoir tout installé :/

Reply

Marsh Posté le 06-12-2006 à 10:03:52   

Reply

Marsh Posté le 06-12-2006 à 10:04:02    

si je tapes "format", j'ai l'aide sur comment formater une cellule dans Excel, mais rien sur VBA.
 
plus exactement, j'ai aucune doc VBA :o
 
(j'ai peut-être oublié de l'installer, j'y pense... [:magicbuzz])

Reply

Marsh Posté le 06-12-2006 à 10:05:54    

Justement, c'est là le bordel, faut chercher format, mais dans l'éditeur VBA, et prier pour que ça marche :D

Reply

Marsh Posté le 06-12-2006 à 10:14:10    

c'est peut-être ça aussi.
 
enfin bref, je trouve que la MSDN de Visual Studio ou de SQL Server est vachement mieu faite.

Reply

Marsh Posté le 06-12-2006 à 14:30:31    

Merci beaucoup pour vos réponses :)

 
MagicBuzz a écrit :

Si je suis d'accord avec ta démarche, je ne peux malheureusement pas t'aider, car quand on "programme" (pour de vrai) on ne bidouille pas avec les forumlaire Excel, on utilise plutôt un langage de programmation (ne serait-ce que du VBA, que génèrent de toute façon tes actions sur les formulaires).

 

A partir de là, tu risques d'avoir peu d'aide...

 

Sinon, d'entrée de jeu, si tu dev avec Access 2003, ne compte surtout pas que ce genre de traîtements passent dans Access 97. Au mieux, ça plantera de partout et tu n'auras qu'à repasser quelques heures à tout corriger, au pire, tu ne pourras carrément pas ouvrir le fichier.

 

Désolé de ne pas pouvoir t'aider plus. Bon courage en tout cas !

 

Mon chargé de td m'a dit que si j'avais un problème de compatibilité je pourrais utiliser son portable pour faire la soutenance. Je n'ai pas encore essayer mais je crois que je peux enregistré le mdb de telle sorte qu'il soit compatible avec des version antérieure grâce à une option lors de la sauvegarde.

 
olivthill a écrit :

Je serais moins négatif que MagicBuzz, car j'utilise reltivement souvent Excel et Access, et les plantages sont très rares.
A mon avis, le problème essentiel de ces logiciels est la très mauvaise qualité de la documentation, qui est sensée être comblée par des livres complémentaires et des cours.

 

Mais pour la questions précise, je ne comprends pas bien de quoi il s'agit.
Combien y a t-il de tables ? Je vois, une table des types de véhicule, mais y a-t-il aussi une table des poids et une table des puissances ? Comment sont organisées les données ?

 

A priori, je ferais une seule table avec les colonnes suivantes :

 

- vehicule_id, numero automatique
- vehicule_lib, chaine de caractères
- type_camion_voiture, chaine de caractères
- poids, nombre
- puissance, nombre

 

Ensuite, je ferais des sélections avec des reqêtes SQL, par exemple :
Select vehicule_lib where type_camion="Camion" and poids > 1500;

 

Select

 

En fait je n'ai pas été très précis sur mon problème, je vous posterais un screen du shema entité association ce soir pour mieux illustrer.

 

Donc j'ai une entité "VEHICULES" qui contient la clé "immatriculation" et les propriétés "TypeVéhicule" "Puissance" et "Poids". L'exo veut que les pilotes de rallye inscrivent leurs véhicule et qu'ils précisent le poid si c'est un camion ou la puissance si c'est une voiture.

 

Je veux donc que la proprieté TypeVehicule détermine si c'est le poids ou la puissance qu'il faut inscrire.

 

A priori je vais essayer de le faire avec un masque de saisie mais je ne peux pas tester là  :p

 

Merci encore  [:al_bundy]

 

Edit voici le shema:

 

http://img506.imageshack.us/img506/3107/shemasj6.png


Message édité par $@G4 le 06-12-2006 à 22:41:40
Reply

Marsh Posté le 08-12-2006 à 16:09:08    

Bonjour,
Pour faire ta saisie, comment est le formulaire (lié ou non à VEHICULES??)
A la saisie du Type Véhicule
testes la valeur et déverrouilles la zone de saisie obligatoire et verrouillesl a zone inutile. Voir dans le help de VBA la propriété locked (de textbox par exemple)
Tu devras tester à la saisie et aussi à l'affichage d'un record déjà créé
Cordialement
 

Reply

Marsh Posté le 02-01-2007 à 12:01:26    

Merci beaucoup!  [:al_bundy]  
 
Désolé de ne pas avoir pu répondre plus tôt (c'est peu de le dire)... Mais grâce à toi j'ai trouvé  :D  
 
Dans la propriété de la table VEHICULES j'ai mis cette restriction:
 
[TypeVéhicule]="Voiture" Et [Puissance]<>0 Et [Poids]=0 Ou [TypeVéhicule]="Camion" Et [Poids]<>0 Et [Puissance]=0
 
Et ça marche  :)  
 
Merci encore  :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed