Access : je sais ce que je veux, mais comment faire ?

Access : je sais ce que je veux, mais comment faire ? - Logiciels - Windows & Software

Marsh Posté le 01-10-2004 à 12:34:38    

Bonjour
Je tripatouille dans access depuis quelques jours mais j'y connais pas grand chose !
J'explique ce que je veux :
J'ai deux tables pleines de données, une sous forme :
 
champsNom champsLog
nom1        LogA
nom1        LogB
nom1        LogC
nom2        LogD
nom2        LogE
nom3        LogF
nom3        LogG
nom3        LogH
 
Et l'autre sous forme
champsNom Logiciel1 Logigiciel2 Logiciel3
 
Elle ne contient pas d'enregistrement vu que je veux mettre ceux de la premiere table sous forme :
 
champsNom Logiciel1 Logigiciel2 Logiciel3
nom1          LogA       LogB      LogC
nom2          LogD       LogE      
nom3          LogF       LogG      LogH
 
Est-ce que l'on peut me guider pour créer ma requète ?
 
(J'ai été clair ? :( )
 
Merci aux experts !

Reply

Marsh Posté le 01-10-2004 à 12:34:38   

Reply

Marsh Posté le 01-10-2004 à 13:25:34    

Que veux tu faire exactement ? Je suis pas sur d'avoir bien compris ce que tu veux faire...
 
Si ton but est de faire un listing des softs par nom, tout dépend s'il est possible que deux noms soient lié au même softs. Peux tu avoir par exemple avoir la chose suivante :
 

champsNom |  champsLog
----------------------
nom1      |    LogA
nom1      |    LogB
nom1      |    LogC
nom2      |    LogB
nom2      |    LogE
nom3      |    LogF
nom3      |    LogG
nom3      |    LogB


 
Si oui, je pense qu'il faudrait construire une base un peu plus costaud (ça reste très simple bien sur), avec liaison entre les tables, et une requête qui construit à la demande le résultat dont tu as besoin.


Message édité par Kortex@HFR le 01-10-2004 à 15:45:21

---------------
Au coeur du swirl - Mon feed
Reply

Marsh Posté le 01-10-2004 à 13:38:33    

Ben j'ai cette idée la aussi pour construire une base avec les noms de logiciels mais dans un deuxieme temps. Vu que je ne maitrise pas  :(  
 
A moins que cela ne facilite pour creer ma requete  :??:

Reply

Marsh Posté le 01-10-2004 à 13:58:32    

En gros, pour ma part, je procéderai de la manière suivante :
 
Table Nom
 

IdNom   |   LibelleNom
----------------------
1       |   Nom1
2       |   Nom2
3       |   Nom3


 
 
Table Logiciel
 

IdLog   |   LibelleLogiciel
---------------------------
1       |   LogA
2       |   LogB
3       |   LogC
4       |   LogD
5       |   LogE


 
Table LogParNom
 

IdNom   |   IdLog
-----------------
1       |    1
1       |    2
2       |    1
2       |    3
2       |    5
3       |    1
3       |    4


 
Ensuite un peu de SQL pour obtenir des résultats aussi divers que (par exemple) :  
- les softs par utilisateurs :
- les utilisateurs par soft
- le nombre d'utilisateurs par soft
- le nombre de softs par utilisateurs
- les utilisateurs qui n'ont pas un softs donné
- la liste des softs que tous les utilisateurs ont
..........
 
Il suffit juste d'acrire les choses correctement. Ensuite, quelques formulaires pour mettre tout ça en forme, et le tour est joué :) ;)


Message édité par Kortex@HFR le 01-10-2004 à 15:45:59

---------------
Au coeur du swirl - Mon feed
Reply

Marsh Posté le 01-10-2004 à 14:06:45    

j'ai appris a me depatouiller avec access grace a ce site
http://www.cathyastuce.com/

Reply

Marsh Posté le 01-10-2004 à 14:56:07    

Merci je vais visiter ce site
 
Mais es commande SQL, je sais meme pas ce que c'est ;)

Reply

Marsh Posté le 01-10-2004 à 15:25:22    

Kortex@HFR a écrit :

En gros, pour ma part, je procéderai de la manière suivante :
 
Table Nom
 
IdNom   |   LibelleNom
----------------------
1       |   Nom1
2       |   Nom2
3       |   Nom3
 
 
Table Logiciel
 
IdLog   |   LibelleLogiciel
---------------------------
1       |   LogA
2       |   LogB
3       |   LogC
4       |   LogD
5       |   LogE
 
Table LogParNom
 
IdNom   |   IdLog
-----------------
1       |    1
1       |    2
2       |    1
2       |    3
2       |    5
3       |    1
3       |    4
 


 
Alors la Table Nom, je l'ai deja puisque c'est ma base principale donc avec un ID unique pour chaque Nom.
La Table Logiciel, je l'ai crée avec un ID unique par logiciel sans doublon.
 
Par contre le 3e table LogParNom, je vois pas très bien par quel moyen la lier ? j'ai créé des "relations" entre les tables précédemment citées en tirant des traits entre chaque mais j'en fait quoi apres  :??:


Message édité par cidou le 01-10-2004 à 15:34:01
Reply

Marsh Posté le 01-10-2004 à 15:40:09    

C'est de la modélisation de données. Ta table Nom possède un ID numérique en face de chaque nom afin de permettre des doublons justement (des homonyme peuvent exister), tout en étant en mesure d'identifier de manière unique chaque utilisateur, et pareil pour les softs. L'autre avantage, c'est que tu vas ensuite faire la relation entre Nom et Log par la table LogParNom, ce qui fait que tu vas uniquement stocker des numéro dans cette table, et que les numéros sont plus léger que les chaînes auniveau stockage.
L'autre intérêt est que ta base devient alorts évolutive, car on peut très bien imaginer une table supplémentaire qui serait (par exemple) la table Editeur et qui permet de savoir qui l'éditeur d'un soft. En ajoutant une simple table à des colonne (IdEditeur, LibelleEditeur) et une clé (IdEditeur) dans la table Log, on pourrait créer un catalogue d'éditeur et stocker avec chaque soft de la table Log relié à un Editeur. Tu vois ce que je veux dire ?
 
Pour la table LogParNom, tu créés une table qui contient deux champs Numérique que tu met en clé primaire (clé primaire composée) et tu créés également des liaisons entre les champs IdNom des tables Nom et LogParNom et entre les champs IdLog des tables Logiciel et LogParNom. Ainsi, lorsque tu associes un logiciel à un utilisateur, tu es sur :  
1°/ que ton soft existe bien dans ton catalogue de soft
2°/ que ton utilisateur existe bien dans ton annuaire d'utilisateur
3°/ que le soft n'est pas déjà attribué à l'utilisateur
 
En ce qui concerne SQL, c'est un langage de requêtage au sein des bases de données, qui permet d'obtenir des résultats très précis et complexe à partir d'une ensemble de données respectant des règles de modélisation, comme celle que je t'ai données en exemple. Jette un oeil sur http://www.commentcamarche.net, ils ont un dossier d'introduction à SQL qui est très bien. Si tu veux que je te donne un coup de main, demande moi, je t'expliquerai.
 
Edit : la méthode que je te propse est un peu lourde pour une simple gestion de soft par utilisateur, j'en conviens. Mais par contre c'est une méthode qui restera valide si tu doit monter des projets plus conséquents ou si ta base doit s'enrichir d'autres informations.Quit à devoir monter un truc, autant apprendre des choses en même temps non ? ;)


Message édité par Kortex@HFR le 01-10-2004 à 15:43:36

---------------
Au coeur du swirl - Mon feed
Reply

Marsh Posté le 01-10-2004 à 16:03:44    

Citation :

C'est de la modélisation de données. Ta table Nom possède un ID numérique en face de chaque nom afin de permettre des doublons justement (des homonyme peuvent exister), tout en étant en mesure d'identifier de manière unique chaque utilisateur, et pareil pour les softs. L'autre avantage, c'est que tu vas ensuite faire la relation entre Nom et Log par la table LogParNom, ce qui fait que tu vas uniquement stocker des numéro dans cette table, et que les numéros sont plus léger que les chaînes auniveau stockage.
L'autre intérêt est que ta base devient alorts évolutive, car on peut très bien imaginer une table supplémentaire qui serait (par exemple) la table Editeur et qui permet de savoir qui l'éditeur d'un soft. En ajoutant une simple table à des colonne (IdEditeur, LibelleEditeur) et une clé (IdEditeur) dans la table Log, on pourrait créer un catalogue d'éditeur et stocker avec chaque soft de la table Log relié à un Editeur. Tu vois ce que je veux dire ?


 
tout ca j'ai saisi  :jap:  
 

Citation :

Pour la table LogParNom, tu créés une table qui contient deux champs Numérique que tu met en clé primaire (clé primaire composée) et tu créés également des liaisons entre les champs IdNom des tables Nom et LogParNom et entre les champs IdLog des tables Logiciel et LogParNom. Ainsi, lorsque tu associes un logiciel à un utilisateur, tu es sur :  
1°/ que ton soft existe bien dans ton catalogue de soft
2°/ que ton utilisateur existe bien dans ton annuaire d'utilisateur
3°/ que le soft n'est pas déjà attribué à l'utilisateur


 
Donc là j'ai bien associé (relation) le champs Logiciel de ma premiere table (tout en haut du topic) et le champs logiciel de ma table ou j'ai ma liste de logiciel sans doublon avec numero unique et j'obtiens... dans cette table avec un petit "+" la liste des nom qui ont ce logiciel  :love:  
Il me faut trouver comment faire l'inverse (qui a quoi) :pt1cable:  
 

Citation :

En ce qui concerne SQL, c'est un langage de requêtage au sein des bases de données, qui permet d'obtenir des résultats très précis et complexe à partir d'une ensemble de données respectant des règles de modélisation, comme celle que je t'ai données en exemple. Jette un oeil sur http://www.commentcamarche.net, ils ont un dossier d'introduction à SQL qui est très bien. Si tu veux que je te donne un coup de main, demande moi, je t'expliquerai.


 
Merci de ton aide, j'vais finir par devenir developpeur de bdd  :D  
 

Citation :

Edit : la méthode que je te propse est un peu lourde pour une simple gestion de soft par utilisateur, j'en conviens. Mais par contre c'est une méthode qui restera valide si tu doit monter des projets plus conséquents ou si ta base doit s'enrichir d'autres informations.Quit à devoir monter un truc, autant apprendre des choses en même temps non ? ;)


 
Disons que là deja ma base est conséquente (j'en dirais pas plus ;))
Je cherche à faire cela parceque normalement je fais toute la saisie en copier coller entre deux bases et j'ai (pratiquement) personne pour me soutenir  :fou: bref je m'investis pour me facilité la tache, et je ne serai meme pas remercier  :(


Message édité par cidou le 01-10-2004 à 19:50:33
Reply

Marsh Posté le 04-10-2004 à 14:39:28    

Lundi... retour à la galère
(up quoi ;))

Reply

Marsh Posté le 04-10-2004 à 14:39:28   

Reply

Marsh Posté le 04-10-2004 à 16:08:55    

+1

Reply

Marsh Posté le 05-10-2004 à 10:28:27    

J'lis des tuto mais ca ne m'avance pas... suis toujours au meme point  :(

Reply

Marsh Posté le 05-10-2004 à 15:07:19    

Explique où tu coince, je vais t'aider :)
 
C'est le SQL qui te pose problème ou simplement la structure de données ?


---------------
Au coeur du swirl - Mon feed
Reply

Marsh Posté le 05-10-2004 à 18:51:42    

euh savoir ou je clique dans access   :whistle:  
J'essaye de creer des liaisons, des requetes mais bon, évidement j'fais au pif.
Le probleme c'est que c'est vraiment très flou pour moi...

Reply

Sujets relatifs:

Leave a Replay

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