pb de requete SQL (enfin je crois) dans access [résolu]

pb de requete SQL (enfin je crois) dans access [résolu] - SQL/NoSQL - Programmation

Marsh Posté le 13-09-2006 à 15:51:34    

bonjour tout le monde!
 
(je tente ma chance dans cette categorie)
 
je débute dans le monde d'access et j'ai un petit pb :
 
j'ai deux tables (entre autre)
 
Table_A et Table_B
 
Table_A comporte  a peu pres 25 champs
Table_B comporte 2 champs
 
les deux Tables ont deux champs "en commun " toto et titi
 
dans Table_B les valeurs de toto et titi sont fixées a l'avance
 
dans Table_A les valeur du champ "toto" sont choisis par le biais d'une liste deroulante dans les valeurs du meme champ "toto" dans Table_B
 
ce que je voudrais c'est que des que je renseigne le champ Table_A.toto, le champ Table_A.titi soit mis a jour par les valeurs correspondante dans la Table_B
 
cela fait 2mois que je bute sur ce pb :(  qui, j'en suis sur, pour quelqu'un d'experimenté doit etre de la rigolade!
 
si quelqu'un pouvait m'aider :??:  je lui en serait fort reconnaissant.
 
merci d'avance
 
SK


Message édité par subkiller le 13-09-2006 à 17:13:24
Reply

Marsh Posté le 13-09-2006 à 15:51:34   

Reply

Marsh Posté le 13-09-2006 à 16:07:09    

à priori, il faut plutôt faire une jointure plutôt que de recopier les données d'une table à l'autre (ça sert justement à conserver le lien)

Reply

Marsh Posté le 13-09-2006 à 16:13:33    

la jointure c'est bien la requete avec "select", "from" etc...?


Message édité par subkiller le 13-09-2006 à 16:14:59
Reply

Marsh Posté le 13-09-2006 à 16:25:32    

oui : inner join, left outer join etc...

Reply

Marsh Posté le 13-09-2006 à 16:50:02    

imagine que tu as une table "voiture" et une table "marque".
 
une marque a un identifiant (numéro) un nom (renault, peugeot, etc.), un logo, un slogan, etc.
 
une voiture est d'une marque.
 
 
si je comprend bien, toi, tu as une table marque comme j'ai décrit, et une table voiture, avec des champs spécifiques à une voiture (nombre de porte, motorisation, etc.) plus tous les champs de la table marque, afin de retrouver le logo de la marque pour une voiture donnée. c'est bien ça ?
 
donc, ça c'est une ineptie, qui ne peut être valable que dans le cas où tu veux historiser les modifications de la marque (et encore, dans ce cas on utilise une autre conception moins gourmande).
 
ce qu'il faut faire :
 
Marque :
id
nom
logo
 
(données)


ID NOM      LOGO
-- -------- ------------
1  Renault  Losange.gif
2  Citroën  Chevrons.gif


 
Voiture :
id
marque_id
nom
categorie
 
(données)


ID MARQUE_ID NOM    CATEGORIE
-- --------- ------ ---------
1  1         Espace Monospace
2  1         R5     Citadine
3  2         AX     Citadine
4  2         BX     Berline


 
Puis, tu fais ce type de requête :
 


select m.nom marque, m.logo, v.nom, v.categorie
from marque m inner join voiture v on v.marque_id = m.id


 
Ce qui retournera :
 


MARQUE  LOGO         NOM    CATEGORIE
------- ------------ ------ ---------
Renault Losange.gif  Espace Monospace
Renault Losange.gif  R5     Citadine
Citroën Chevrons.gif AX     Citatine
Citroën Chevrons.gif BX     Berline


 
L'intérêt de ce système, c'est que mettons que Renault change de logo, pour un carré.
Tu modifies alors dans la table MARQUE, et zou ! Ca impacte direct le résultat de cette requête pour toutes les voitures de la marque Renault. C'est donc là qu'on trouve l'intérêt du SGBD... Si c'est juste pour stocker des données figées et dupliquées, il n'y a aucun intérêt !


Message édité par MagicBuzz le 13-09-2006 à 16:53:58
Reply

Marsh Posté le 13-09-2006 à 16:51:36    

alors là j'ai du retourner la requete dans tout les sens j'ai jamais reussi
 
je pete un cable [:armelanuel] [:bbcmoi]

Reply

Marsh Posté le 13-09-2006 à 16:53:28    

Là, je viens de te poster un exemple entier, contente-toi de reproduire à l'identique les tables de mon exemple et exécuter la requête. bidouille-la ensuite, tu verras c'est simple comme tout.
 
Et le SQL (surtout à ce niveau) c'est pas bien compliqué à comprendre : c'est de l'anglais pur, y'a pas un seul terme technique (par contre, un peu de termes d'algèbre ensembliste, ça reste à la portée du CE2...)

Reply

Marsh Posté le 13-09-2006 à 16:59:55    

merci beaucoup je vais essayé ça illico
(desolé mais j'etais en train de chercher les smileys pendant que tu postait ton exemple)

Reply

Marsh Posté le 13-09-2006 à 17:12:06    

:bounce: :jap:  merci merci merci merci :bounce:  :jap:  
 :hello:

Reply

Sujets relatifs:

Leave a Replay

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