Creo un recordset
Dim rs as DAO.Recordset
set rs=CurrentDb.OpenRecordset("SELECT * FROM rs WHERE [Campo2]=X")
E' possibile creare una tabella con questi dati e cancellarla?
Tnx
L'istruzione set che hai riportato ha poco senso infatti, se ci pensi
bene, rs alla fine č definito in termini di se stesso
Forse vuoi, da codice:
1) creare una tabella temporanea
2) utilizzarla accedendovi con DAO
3) cancellarla quando non ti serve piů.
1) Docmd.RunSQL "SELECT * INTO TabellaTemporanea FROM TuaTabella WHERE
Campo2='X' "
2) Set rs=Currentdb.OpenRecordset("TabellaTemporanea")
3a) currentdb.tabledefs("TabellaTemporanea").delete
3b) currentdb.tabledefs.refresh
Vincenzo Turturro
---------------------------------------------
il sito comune di it.comp.appl.access:
http://www.sitocomune.com/
---------------------------------------------
E quello di it.comp.as400
http://www.faq400.com/
---------------------------------------------
Dimenticavo: la sintassi è sbagliata.
Infatti al momento di eseguire l'istruzione, la variabile rs che
compare nella SELECT non può essere risolta e non potrebbe esserlo
anche se fosse definita non in termini di se stessa.
Grazie per la tua risposta Vincenzo.
Perfetto.
Un'ultimissima cosa...
I nomi dei campi nella nuova tabella che tu chiami TabellaTemporanea
arrivano dalla tabella TuaTabella, no?
Voglio dire, a livello strutturale in questo modo creo una nuova tabella con
i nomio dei campi di quella esistente?
Ancora mille grazie.
Grazie Vincenzo.
Un'altra domanda...
Immaginiamo la tabella TuaTabella così strutturata:
Campo A
Campo B
Campo C
Ecco un esempio:
Docmd.RunSQL "SELECT CampoA; Campo C INTO TabellaTemporanea FROM TuaTabella
WHERE CampoB='X' "
Dovrei avere la tabella TabellaTemporanea con questa struttura, vero?
Campo A
Campo C
Immaginiamo che la TabellaTemporanea abbia una decina di record...
Possi effettuare delle somme, dei calcoli senza usare le maschere?
Che so, sommare tutti i campi C, contare ecc?
Uso sempre DSum, DCount?
Tnx
>Immaginiamo la tabella TuaTabella cosě strutturata:
>Campo A
>Campo B
>Campo C
>
>Ecco un esempio:
>Docmd.RunSQL "SELECT CampoA; Campo C INTO TabellaTemporanea FROM TuaTabella
>WHERE CampoB='X' "
>
>Dovrei avere la tabella TabellaTemporanea con questa struttura, vero?
>Campo A
>Campo C
Sě
>Immaginiamo che la TabellaTemporanea abbia una decina di record...
>Possi effettuare delle somme, dei calcoli senza usare le maschere?
>Che so, sommare tutti i campi C, contare ecc?
Sě
>Uso sempre DSum, DCount?
Dipende dall'uso che vuoi farne.
All'interno del codice puoi usare le funzioni che hai menzionato.
Se intendi usare SQL, devi utilizzare le cosiddette funzioni di
aggregazione SUM(), COUNT(), AVG() ecc. il cui utilizzo č documentato
nell'help di Access.
A questo punto sorge spontanea una domanda:se devi compiere operazioni
sui valori di alcuni campi di tutti i record della tabella temporanea,
perchč non esegui le medesime operazioni sui record della tabella di
orgine opportunamente filtrati ?
Dsum("CampoA";"TuaTabella";"CAMPOB='X'") č del tutto equivalente a
crare TabellaTemporanea con i record di TuaTabella dove CampoB='X' e
quindi calcolare Dsum("CampoA","TabellaTemporanea")
>Un'ultimissima cosa...
>I nomi dei campi nella nuova tabella che tu chiami TabellaTemporanea
>arrivano dalla tabella TuaTabella, no?
>Voglio dire, a livello strutturale in questo modo creo una nuova tabella con
>i nomio dei campi di quella esistente?
Sě.