Newsgroup: it.comp.appl.access
Titolo: accodare records U R G E N T E

Risalve
questo problemino č un po' piů urgente, visto che debbo consegnare il lavoro
lunedě:
Ho dei record in tabella A che vorrei copiare ciascuno N volte nella tabella
B dove N č un campo della tabella A.
Mi sapete dire come fare con VB?
Grazie
--
------------------------------
Timeo Danaos sed dona ferentes (Omero)
------------------------------


Ciao sono Arianna
E' la prima cosa che mi viene in mente ed è una soluzione terra terra
 - se metti in una variabile il numero di volte che devo accodare
 - crei la tua query di accodamento
        strsql = "INSERT INTO <TabellaDestinazione>( <campo1>, <campo2>,...)
" & _
                     "SELECT <TabellaOrigine>.<campo1>,
<TabellaOrigine>.<campo2>.." & _
                      "FROM <TabellaOrigine> " & _
                     "[WHERE ...];"
        for i=1 to <NumeroVolte>
            currentdb.execute strsql,dbfailonerror
        next
...non ti assicuro la velocità se i record in esame sono molti
ma funziona!
spero di aver capito quello che chiedevi e di averti aiutato..
io il lavoro lo devo consegnare GIOVEDI!
Ciao
By Arianna

Mi sapete dire come fare con VB?
dim rstA as recordset
dim rstB as recordset
dim i as long
set rstA=currentdb.openrecordset("SELECT * FROM TabellaA WHERE...")
set rstB=currentdb.openrecordset("TabellaB")
do until rstA.eof
	for i = 1 to rstA!CampoQuanteVolte
		rstB.addnew
		rstB!Campo1=rstA!Campo1
		rstB!Campo2=rstA!Campo2
		ecc.
		rstB.update
	next i
	rstA.movenext
loop
se i campi sono molti, i nomi corrispondono, li devi riversare tutti e
non ti va di scriverli tutti puoi fare:
dim rstA as recordset
dim rstB as recordset
dim fld as field
dim i as long
set rstA=currentdb.openrecordset("SELECT * FROM TabellaA WHERE...")
set rstB=currentdb.openrecordset("TabellaB")
do until rstA.eof
	for i = 1 to rstA!CampoQuanteVolte
		rstB.addnew
		for each fld in rstB.fields
			rstB(
fld.name
)=rstA(
fld.name
)
		next fld
		rstB.update
	next i
	rstA.movenext
loop
l'esecuzione sarà più lenta ma almeno scrivi di meno.
--
non studio non lavoro non guardo la tv
non vado al cinema non faccio sport
----------------------------------------
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access

 ha scritto nel messaggio
news:39de7c48...@news.interbusiness.it...


mi dice che la query non ha trovato ""
prova a scrivere il nome dela tabella tra virgolette...


Ciao sono Arianna
Prova cosě
dim i
dim strSQL as string
strsql="INSERT INTO TabellaDestinazione ( Campo1, Campo2, Campo3, Campo4 )
SELECT TabellaOrigine.Campo1, TabellaOrigine.Campo2, TabellaOrigine.Campo3,
TabellaOrigine.Campo4
FROM TabellaOrigine
WHERE TabellaOrigine.Campo1=TabellaDestinazione.Campo1 AND/OR
TabellaOrigine.Campo2=TabellaDestinazione.Campo2 AND/OR
TabellaOrigine.Campo3=TabellaDestinazione.Campo3 AND/OR
TabellaOrigine.Campo4=TabellaDestinazione.Campo4;"
for i=1 to <Numero Volte>
    currentdb.execute strsql dbfailonerror
next
In Rif al tuo msg:
La query di accodamento la maggior parte delle volte fa riferimento a 2
tabelle e quindi devi specificare la tabella di appartenenza
Tabella1.campo1=Tabella2.campo1
Ciao
By Arianna
In bocca al lupo