Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Copie d enregistrements dans une requete

5 réponses
Avatar
magicaos
Bonjour a tous
Je Voudrai savoir sil serait possible qu un enregistrement toute entier soit
copier un certain nombre de fois dans une requete:
Ma requete me cherche les produits livres a un date X, de la je voudrai que
l enregistrement de ma requete aparaisse un certain nombre de fois
(modifiable ce dit en passant)

Il Y aurait il une facon d y arriver ...
Merci d avance

5 réponses

Avatar
Tisane
Bonjour magicaos,

Je Voudrai savoir sil serait possible qu un enregistrement toute entier
soit
copier un certain nombre de fois dans une requete:
Ma requete me cherche les produits livres a un date X, de la je voudrai
que
l enregistrement de ma requete aparaisse un certain nombre de fois
(modifiable ce dit en passant)


On ne copie pas des enregistrements dans une requête. On les copie dans une
table.
Tu peux donc créer une requête Ajout, mais je ne comprends pas très bien ta
demande.
Tu n'utilises pas les requêtes pour faire de la saisie au moins ?

--
Tisane

Avatar
Synopsis
Ta requête ;-)), est loin d'être claire....


Il est possible de dupliquer des lignes un certains nombre de fois.
Le cas académique

Exemple :

Detail_commande
(
num_commande
, code_article
, qte_vendue
)

On souhaite dupliquer autant de fois que de qte_vendue.

Tu passes par une table Nombre

Nombre
(
value int not null
)

que tu enirchies de 0 à 100 par exemple.
Il faut que max(value) > max(qte_vendue)


select num_commande, code_article, nombre as num_ligne
from detail_commande
join nombre on (nombre.value<detail_commande.qte_vendue)

ou

join nombre on (nombre.value<Þtail_commande.qte_vendue)
where nombre.value>0

On peut améliorer

Table Chiffre (value int) = [0 ; 9]

Pour avoir tous les nombres de 0 * 999

select (100 * a.value + 10 * b.value + c.value ) as nombre
from chiffre as a
cross join chiffre as b
cross join chiffre as c




"magicaos" a écrit dans le message de
news:
Bonjour a tous
Je Voudrai savoir sil serait possible qu un enregistrement toute entier
soit

copier un certain nombre de fois dans une requete:
Ma requete me cherche les produits livres a un date X, de la je voudrai
que

l enregistrement de ma requete aparaisse un certain nombre de fois
(modifiable ce dit en passant)

Il Y aurait il une facon d y arriver ...
Merci d avance


Avatar
magicaos

Ta requête ;-)), est loin d'être claire....


Il est possible de dupliquer des lignes un certains nombre de fois.
Le cas académique

Exemple :

Detail_commande
(
num_commande
, code_article
, qte_vendue
)

On souhaite dupliquer autant de fois que de qte_vendue.

Tu passes par une table Nombre

c est exactement cela que je veux faire ( effectivement je ne me sert a pas

d une requete pour introduire des donnee ne prennez pas peur.

Neanmoins je doit avouer que j ai pas tres bien compris la suite ...
Je ne manni pas le langage SQL ( traduits avec access sa donne quoi ???)

Merci

Avatar
Synopsis
Je dois t'avouer qu'après coup je me suis rendu compte que j'étais sur le
forum fr.access et non fr.sqlserver.
C'est pourquoi le post est un peu plus technique.

2 méthodes :

- une macro

Tu passes par une table temporaire

grosos modo la synthaxe

set rs_source = conn.execute( "ma requête sql")

conn.execute('delete from maTableTemporaire")
rs_destination.open "maTableTemporaire"


While not rs_source.eof

for idx = 1 to rs_source("qte") ' ici on duplique "qte" de fois
rs_destination.AddNew

rs_destination("col1") = rs_source("col1")
rs_destination("col2") = rs_source("col2")
rs_destination("col3") = rs_source("col3")

rs_destination.Update
next

rs_source.movenext
Wend

rs_destination.close
rs_source.close


- Sinon avec le langage SQL on peut tout faire...

Dans le post précédent, je passe par un produit Cartesien (CROSS JOIN) entre
deux tables.

I = [A, B ,C ]
J = [1, 2, 3 ]

Produit Cartésien I X J = { (A;1), (A;2), (A;3), (B;1), (B;2), (B;3), (C;1),
(C;2), (C;3)}
Puis on filtre sur le résultat du produit cartésien.

Il faudrait que tu soit familiarisé avec le langage SQL.









"magicaos" a écrit dans le message de
news:



Ta requête ;-)), est loin d'être claire....


Il est possible de dupliquer des lignes un certains nombre de fois.
Le cas académique

Exemple :

Detail_commande
(
num_commande
, code_article
, qte_vendue
)

On souhaite dupliquer autant de fois que de qte_vendue.

Tu passes par une table Nombre

c est exactement cela que je veux faire ( effectivement je ne me sert a

pas

d une requete pour introduire des donnee ne prennez pas peur.

Neanmoins je doit avouer que j ai pas tres bien compris la suite ...
Je ne manni pas le langage SQL ( traduits avec access sa donne quoi ???)

Merci



Avatar
magicaos
:S faut vraiment que je m y mette la je crois que j ai encore moins compris
(escusez mon ignorance) bon alors si je comprend bien sa serai creer une
macro en visual basic !?
Si oui est ce qu il serait possible que vous m expliquier pas a pas les
etapes ... Question de comprendre se que je fait :)

Merci pour la reponse et la patience ...



Je dois t'avouer qu'après coup je me suis rendu compte que j'étais sur le
forum fr.access et non fr.sqlserver.
C'est pourquoi le post est un peu plus technique.

2 méthodes :

- une macro

Tu passes par une table temporaire

grosos modo la synthaxe

set rs_source = conn.execute( "ma requête sql")

conn.execute('delete from maTableTemporaire")
rs_destination.open "maTableTemporaire"


While not rs_source.eof

for idx = 1 to rs_source("qte") ' ici on duplique "qte" de fois
rs_destination.AddNew

rs_destination("col1") = rs_source("col1")
rs_destination("col2") = rs_source("col2")
rs_destination("col3") = rs_source("col3")

rs_destination.Update
next

rs_source.movenext
Wend

rs_destination.close
rs_source.close


- Sinon avec le langage SQL on peut tout faire...

Dans le post précédent, je passe par un produit Cartesien (CROSS JOIN) entre
deux tables.

I = [A, B ,C ]
J = [1, 2, 3 ]

Produit Cartésien I X J = { (A;1), (A;2), (A;3), (B;1), (B;2), (B;3), (C;1),
(C;2), (C;3)}
Puis on filtre sur le résultat du produit cartésien.

Il faudrait que tu soit familiarisé avec le langage SQL.









"magicaos" a écrit dans le message de
news:



Ta requête ;-)), est loin d'être claire....


Il est possible de dupliquer des lignes un certains nombre de fois.
Le cas académique

Exemple :

Detail_commande
(
num_commande
, code_article
, qte_vendue
)

On souhaite dupliquer autant de fois que de qte_vendue.

Tu passes par une table Nombre

c est exactement cela que je veux faire ( effectivement je ne me sert a

pas

d une requete pour introduire des donnee ne prennez pas peur.

Neanmoins je doit avouer que j ai pas tres bien compris la suite ...
Je ne manni pas le langage SQL ( traduits avec access sa donne quoi ???)

Merci