Access - Relation plusieurs à plusieurs - Table de jointure

Access - Relation plusieurs à plusieurs - Table de jointure - Logiciels - Windows & Software

Marsh Posté le 28-11-2008 à 10:28:42    

Bonjour! (j'espère être dans la bonne catégorie, cette fois!) Je suis actuellement en stage dans une entreprise et je n'arrive pas à résoudre ma "mission"! C'est pour cette raison que je viens vers vous  :bounce:  
 
Alors mon problème est tout bête! Comment fait-on pour "recopier" des numauto vers une autre table ? Je vous schématise ce que je veux dire :
J'ai une table que j'avais fait sous excel (qui montre qui vend quoi):
Fournisseur.....Produit
XXXX.............1111
XXXX.............2222
YYYY.............1111
ZZZZ.............3333
ZZZZ.............4444
 
Et je dois faire une table de jointure FOURNISSEUR-PRODUIT (code_four, code_prod) et j'aimerais donc que ce soit comme ça :
Code_four.....Code_prod
0001............10001
0001............10002
0002............10001
0003............10003
0003............10004
 
Donc j'aimerais savoir comment faire pour retrouver les numauto sans tout ressaisir... J'espère que vous comprenez... Je suis sure que c'est super simple mais j'ai trop de mal avec Access... merci de m'aider  :jap:

Reply

Marsh Posté le 28-11-2008 à 10:28:42   

Reply

Marsh Posté le 28-11-2008 à 15:29:14    

Bonjour,
c'est une "mission" ou un exercice pour voir?
ton fichier excel a-t-il beaucoup de lignes?
qu'as-tu déja élaboré dans access à ce sujet?
sais-tu utiliser les requêtes sous access? requêtes création, mise à jour, ajout?
as-tu déja importé ton fichier excel?
 
as-tu déja une table produit?
cordialement


Message édité par seniorpapou le 28-11-2008 à 15:31:18
Reply

Marsh Posté le 28-11-2008 à 15:56:49    

Bah je suis en stage, donc c'est une action que je dois réaliser. Je suis en BTS. Donc dans mon stage, ce n'est plus seulement de l'observation comme au collège! On agit!!
 
Il a 1664 lignes  :pt1cable:  (mais ce ficher excel est déjà sous forme de table sur access, je l'ai déjà importé) donc oui il y en a beaucoup!
 
J'ai déjà fait plein de petites choses, ça fait deux semaines que je suis dessus!  J'ai par exemple fait un formulaire que les salariés devront compléter au fur et à mesure pour renseigner les coordonées d'un fournisseur. Toutes mes tables sont crées [ FOURNISSEUR(code_four, fournisseur, adresse, cp, ville, pays, tel, fax), PRODUIT(code_prod, produit), RUBRIQUE(code_rub, rubrique) FOURNISSEUR_PRODUIT(code_four, code-prod), PRODUIT_RUBRIQUE(code_prod, code_rub)] et mises en relation. Tout semble marcher! Mais ma table de relation qui relit "FOURNISSEUR" et "PRODUIT" est vide donc j'ai du mal à continuer...
 
Le but final est de faire un formulaire qui recense le nom des fournisseurs, les noms des produits qu'ils vendent, et les rubriques auxquels les produits appartiennent (par exemple: entreprise X, vend des cuves et des agitateurs, qui vont dans la rubrique "équipement station" ). Il en existe déjà un mais c'est un vrai bazard dans la base de données. Aucune clé primaire, aucune relation. Moi je voulais faire ça au mieux du mieux puisque je devrais présenter cette mission lors de mon épreuve finale du BTS !
 
Sinon, les rêquetes, je sais faire le minimum... Je suis dans un BTS "bureautique" donc on voit ça assez vite. Mais je m'autoforme grâce au net ou des livres sur access!!
 
(merci d'avoir répondu!!)


Message édité par princesse87 le 28-11-2008 à 16:02:50
Reply

Marsh Posté le 28-11-2008 à 16:12:56    

Bonsoir,
tu as donc sous access une table fournisseurA avec doublons issue du fichier Excel, une table fournisseurB (sans doublons) pour laquelle tu as pris comme clef le numéro auto , une table produits dont les noms de produits sont 1111   2222   ... et le code 10001 10002 etc.
Une requête création de table où tu vas chercher pour chaque fournisseurA l'ID de la table fournisseurB et le code produit de la table produit
cordialement


Message édité par seniorpapou le 28-11-2008 à 16:13:45
Reply

Marsh Posté le 01-12-2008 à 16:40:27    

Merci de votre aide! Je n'ai pas encore fini avec cette fichue base de données mais j'avance petit à petit! D'ailleurs, j'ai crée une base de données de test (pour ne pas embrouiller toutes les données déjà créé par l'entreprise) sous ACCESS 2003 (parce que le minimum que je sais, je le fais sur cette version) et là je dois tout retransposer sous access 1997. Je pensais qu'avec un petit copier coller, ça allait marcher mais non... Ca me parle de macro...  :ouch: enfin ça ce n'est pas dramatique, je peux quand meme copier par ajout les tables en mode "feuille de données". C'est déjà ça  :sweat:

Reply

Marsh Posté le 01-12-2008 à 18:08:41    

Bonsoir, je n'ai pas compris le problème pour 1997
sous 2003, on va dans outils->utilitaires...->convertir une base de données puis on choisit 97
 
On peut aussi copier un objet (table, formulaire, requête..) par fichier-> exporter    ou fichier->données externes ->importer, suivant le mdb où l'on se trouve
Cordialement


Message édité par seniorpapou le 01-12-2008 à 18:14:04
Reply

Marsh Posté le 02-12-2008 à 09:58:25    

Ah oui! Pinaise qu'est-ce que je suis nulle! J'en ai presque honte  :D  
 
Bon tout m'a lair de marcher à peu près. Mais dans mes formulaires, quand je choisis un fournisseur qui a un apostrophe (ex : XXX de l'aisne), ça me marque un message d'erreur : "erreur d'execution "3077" erreur de syntaxe (opérateur absent) dans l'expression".
 
J'ai fait quelques recherches sur Internet mais dans les forums, ils disent d'insérer un code... Euh, comment on fait ça? On ne m'a pas appris  :fou:  
Ou alors, au pire, j'enlève tous les apostrophes des noms...
 
EDIT : j'ai un nouveau problème semblable! Ca me dit "erreur d'éxécution '3021' - Pas d'enregistrement courant"  :pt1cable:  
Quand je commence à m'en sortir, de nouveaux problèmes débarquent !!


Message édité par princesse87 le 02-12-2008 à 10:30:22
Reply

Marsh Posté le 02-12-2008 à 11:04:59    

Bonjour
 
Tu as une base unique ou sont stockés données et programmes ?
 
Peux tu nous faire suivre le fichier .mdb qu'on regarde ?  
Je pense que pour seniorpapou (bien le bonjour au passage môssieur ;) ) ou pour moi ca ira plus vite parceque detecter les erreurs, surtout apres une conversion 2003-97 c'est pas évident... Meme si comme ca, le coup de l'apostrophe ressemblerait a une erreur de chaine dans une requete...
 
Cordialement


Message édité par SuppotDeSaTante le 02-12-2008 à 11:07:17

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 02-12-2008 à 11:19:16    

Je ne comprends pas trop ta question  :(  
Cette base a été faite par l'entreprise où je suis en stage! Moi je devais juste mettre à jour le nom des fournisseurs! Bon étant donné que c'est pour mon BTS je voulais faire pluss mais en vain  :) ^^ donc euhh oui je pense que c'est une base unique ^^.  
Pour les messages d'erreur, c'est pas à cause de moi! Je pense que c'était déjà là avant que j'arrive... Donc je voulais essayer de leur réparer parce qu'après, ca va retomber sur moi  :lol:
 
Et je dois envoyer quoi au juste ?


Message édité par princesse87 le 02-12-2008 à 11:20:00
Reply

Marsh Posté le 02-12-2008 à 12:51:20    

Access permet de soit :
- Faire des formulaires etc. liés a une base de données SQL Server
- Faire des formulaires etc. liés a une autre base Access (ne contenant que les données, les tables)
- Faire des formulaires etc. où la base contient et les formulaires et les donnees.
Etc.
 
Donc je voulais savoir si ta base entrait dans la 3eme solution, c'est a dire qu'elle contient tout, donnees (tables) et programmes (formulaires)
 
Si tu peux envoyer la base access, pour qu'on zieute tes messages d'erreur justement, mais seulement si c la troisieme solution, sinon c'est inexploitable ou presque.


Message édité par SuppotDeSaTante le 02-12-2008 à 12:52:26

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 02-12-2008 à 12:51:20   

Reply

Marsh Posté le 02-12-2008 à 13:16:18    

Ah oui, la base de données contient tout! Donc il y a beaucoup de "choses". Seul tout ce qui est documentation/fournisseur/produit/rubrique sert pour mon action. Bon euhh comment on envoie qqch sur un forum ? (ouai première fois où je m'inscris dans des forums, d'hab je fais juste des recherches sans poser de questions)
 
EDIT : Bon euh finalement, j'en ai parlé avec la secrétaire et les autres salariés, tout le monde a le pack office 2003... Donc je pense que la base de données que j'ai refait (j'ai réussi à faire des formulaires qui marchent bien!!), bah elle va rester sous 2003! Sauf si le directeur refuse... Je verrais ça jeudi...  :sweat:
 
Donc merciii en tout cas les garçons!


Message édité par princesse87 le 02-12-2008 à 16:59:43
Reply

Marsh Posté le 02-12-2008 à 17:02:25    

Bonsoir dje69r,
pour Princesse, on peut envoyer un fichier par le site cjoint.com, mais la taille est limitée à 500ko. Je suppose que dans ton cas il fera plus de500ko. Mais de toutes façons il vaut mieux faire un mdb expurger des données confidentielles de l'entreprise. S'il dépasse quand même 500Ko (après compactage et mise sous ZIP) je te passerai mon mail en MP et dje69r le fera probablement aussi.
Pour le signe ' il est interprété comme un délimiteur de chaine de caractères, pour éviter les soucis il est plus simple dans un premier temps de le faire disparaître. Plus tard tu pourras revenir dessus....
 
Il est "normal" que lorsque l'on  s'attaque à un produit, quel qu'il soit, on passe d'un problème à un nouveau.  
Cordialement


Message édité par seniorpapou le 02-12-2008 à 17:06:58
Reply

Marsh Posté le 02-12-2008 à 17:41:23    

Il doit y avoir mon mail dans mon profil. Apres bien entendu, comme le souligne seniorpapou, il ne faut que la base que tu envoies contienne des donnees confidentielles.
 
Le choix d'Access 2003 est tout de meme plus interressant que le 97.
 
Je pense aussi que le ' vient d'un probleme de conversion de chaine de 2003 à 97. En effet quand on converti, certaine fonction dans les requete sont males interpretees entre 2003 et 97
 
Cordialement


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 03-12-2008 à 12:52:51    

Pour les données confidentielles, c'est bon, je pense qu'il n'y a rien! Mais je vous envoie ça demain! Parce que si ça se trouve le directeur va bien vouloir accepter que l'on garde tout ce qui est documentation sous access 2003 ! (la base de données compactée fait 1,75MO). En tous cas, merci!  :love:  ^^

Reply

Marsh Posté le 31-12-2008 à 11:41:51    

Selon vous, quand on doit faire plus d'une dizaine de jointures dans une requete, ne serait-ce pas mieux de faire plusieurs petites requetes d'update à coté au lieu d'avori une dizaine de jointures dans la même requete ?


---------------
Saint Seiya  || La Livebox || Europe, débats, réflexions
Reply

Marsh Posté le 31-12-2008 à 18:09:43    

Princesse87 : pas de nouvelles ?
 
Ex-Floodeur : a mon avis la difference ne doit pas etre enorme avec les machines qu'on possedent en 2008... Apres tout depend du nombre d'enregistrements que calculent la requete. Mais je pense pas que ca change grand chose.


---------------
Soyez malin, louez entre voisins !
Reply

Sujets relatifs:

Leave a Replay

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