[Access] Generer des lignes dans une Query

Generer des lignes dans une Query [Access] - SQL/NoSQL - Programmation

Marsh Posté le 20-09-2007 à 11:57:40    

Bon, j'ai un soucis que je ne vois pas trop comment resoudre.
 
- J'ai une table avec une colonne qui contient un nombre.
- Je dois creer une query qui va m'afficher autant de lignes que ce nombre, avec des infos issues de la meme lignes.
 
Ex:

Lieu | Annee | Participants
XXX  | YYYY  | 3


 
Dois me donner quelque chose comme
 

Lieu | Annee | Noms | Prenom
XXX  | YYYY  | N/A  | N/A
XXX  | YYYY  | N/A  | N/A
XXX  | YYYY  | N/A  | N/A


 
Histoire de pouvoir faire un export en excel ou autre que les gens pourront completer.
 
Quelqu'un voit comment faire? Avec les modules?


Message édité par gizmo le 20-09-2007 à 11:58:06
Reply

Marsh Posté le 20-09-2007 à 11:57:40   

Reply

Marsh Posté le 20-09-2007 à 12:05:36    

bjr, tu n'as pas nécessairement besoin du nombre, tu effectues dans excel avec  
set RS = db.openrecordset (reqsql)
copyfromrecordset RS

Reply

Marsh Posté le 20-09-2007 à 12:58:40    

euh, oui, mais non. Le but est de le faire dans Access, pas dans excel. Excel n'est qu'un des format d'output, donc je ne peux pas me baser sur une solution qui en est dependante.

Reply

Marsh Posté le 21-09-2007 à 15:50:41    

Y'a a boire et à manger là dedans. Si tu pige rien, j'ai un autre mail en stock où j'explique ce qu'est la table compteur.
 

Citation :


Voici une proposition pour éviter d'avoir une table compteur.
 
Sinon, dans la logique :
 
Table "CPT" avec "numcpt" allant de 1 à XXX (où XXX >> Nombre maxi désiré)
 
Exemple avec la table compteur (pour générer autant d'étiquettes que le qotite d'un produit) :
 
Select pro.codpro, cpt.numcpt
From pro, cpt
Where pro.codsoc = 2 and pro.codpro = 'A00001'
And cpt.numcpt <= pro.qotite
 
Exemple avec l'astuce ci-dessous : (à tester)
 
Select pro.codpro, level numcpt
From pro Connect by level <= pro.qotite
Where pro.codsoc = 2 and pro.codpro = 'A00001'
 
-----Message d'origine-----
De : CC
Envoyé : mercredi 4 octobre 2006 11:15
À : OT
Cc : SD
Objet : [Fwd: "Table" compteur sous Oracle]
 
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
 
Un oubli :)
 
- -------- Message original --------
Sujet:  "Table" compteur sous Oracle
Date:  Wed, 4 Oct 2006 10:56:00 +0200
De:  SD
Pour:  AV, HD, RG, TR, CC, MY
 
 
Problème habituel : Je veux avoir des séries de 1 à x où x correspond à un nombre retourné par ma requête.
 
 
 
Par exemple, pour imprimer les étiquettes de colis en plusieurs pièces :
si j’ai 3 colis pour mon produit, alors je veux faire les étiquettes 1/3, 2/3 et 3/3.
 
 
 
Habituellement, on a le choix entre :
 
- -          Une table « compteur » qui contient une suite de 1 à xxx avec
xxx > que toute valeur possible de x.
 
- -          La requête que nous a proposé Christophe l’autre jour, et qui
n’est pas des plus simple.
 
 
 
Je viens de tomber par hasard sur une requête qui fonctionne sous Oracle à partir de la version 9i, qui utilise une fonctionnalité « nouvelle » de « CONNECT BY ».
 
Le gros intérêt de cette syntaxe, c’est qu’elle est à la fois simple/courte, et évite de passer par une table utilisateur relativement inutile.
 
 
 
SELECT level FROM dual CONNECT BY level <= 20
 
 
 
Cette requête nous retourne tous les nombres de 1 à 20.
 
 
 
Cette autre requête nous retourne un compteur un peu plus bizarre :
 
Tous les nombres impairs de 1 à 10, puis tous les nombre de 11 à 20
 
 
 
SELECT level FROM dual CONNECT BY level <= 20
 
MINUS
 
SELECT level * 2 FROM dual CONNECT BY level * 2 < 10;
 
 
 
**SD***
 
- --
CC -----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (MingW32)
 
iD8DBQFFI3ucMl/S4ZhUIzERArAtAJ9RiHDFTVj5NFW51dQ1PEy4mHAueACg2KN5
3p1buD/P/D0exjXqgRWLcw0=
=iuPI
-----END PGP SIGNATURE-----


Message édité par MagicBuzz le 21-09-2007 à 15:51:25
Reply

Marsh Posté le 21-09-2007 à 16:11:33    

Euh, oui, mais non, la c'est pour Oracle. Et dans Oracle, je sais comment faire, vu qu'il a ses extensions proprietaires. Mon soucis c'etait Access.
 
Enfin, j'ai rembale le probleme en amont, ils n'ont qu'a me founir une DB au bon format. Ils ont l'information, il ne me l'ont juste pas fourni.


Message édité par gizmo le 21-09-2007 à 16:11:51
Reply

Marsh Posté le 21-09-2007 à 16:20:42    

si t'avais lu correctement, la première requête et la ligne précédentent te donne la solution qui fonctionne avec n'importe quel SGBD, y compris Access.
 
c'est pourri, ok, mais ça marche.

Reply

Marsh Posté le 21-09-2007 à 16:38:25    

Tu parles de celle ou je dois rajouter une table compteur? Dans ce cas non merci [:itm] Je n'ai aucune idee du nombre maximum que les gens peuvent me fournir. Les solutions porcines, je m'en passe, c'est d'ailleur pour ca que j'ai fait remonter le probleme...

Reply

Marsh Posté le 21-09-2007 à 17:42:49    

Et ça doit être pour ça que t'as pas trouvé de solution [:itm]

Reply

Sujets relatifs:

Leave a Replay

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