Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Come trasferire alcuni dati da una tabella ad un'altra?

2,729 views
Skip to first unread message

Leo

unread,
Sep 17, 2002, 10:52:54 AM9/17/02
to
Ciao, sono poco pratico di access, ho creato una tabella di cui mi servono
aalcuni dati da inserire in un altra tabella che ha solo due campi in pių
rispetto all'altra.
Io infatti effettuo l'inserimento tarmite una maschera, che ha origine da
una query, alcuni recordi della tabella 1 devono essere trasferiti nella
tabellaa2 che contiene solo due campi.
Come posso fare?

Antonio Biso

unread,
Sep 17, 2002, 10:56:14 AM9/17/02
to
"Leo" <Leo2...@yahoo.it> ha scritto nel messaggio
news:alHh9.5717$Av4.1...@twister2.libero.it...

Query di accodamento da una tabella ad un'altra.
Per i campi in pių o non ci metti nulla o ci metti qualcosa deciso da te
(es. un trattino -)

Antonio


Leo

unread,
Sep 17, 2002, 11:06:27 AM9/17/02
to

"Antonio Biso" <ch...@etruria.net> ha scritto nel messaggio
news:ioHh9.6840$Hc7.1...@twister1.libero.it...

Allora laa maschera che mi dovro' creare per inserire i due campi in piu'
avra' origine dalla query d'accodamento?


Roberto da casa

unread,
Sep 17, 2002, 11:09:16 AM9/17/02
to

"Leo" <Leo2...@yahoo.it> ha scritto nel messaggio
news:alHh9.5717$Av4.1...@twister2.libero.it...
> Ciao, sono poco pratico di access, ho creato una tabella di cui mi servono
> aalcuni dati da inserire in un altra tabella che ha solo due campi in più

> rispetto all'altra.
> Io infatti effettuo l'inserimento tarmite una maschera, che ha origine da
> una query, alcuni recordi della tabella 1 devono essere trasferiti nella
> tabellaa2 che contiene solo due campi.
> Come posso fare?

A fronte dell'evento "Dopo inserimento" della tua maschera genera una codice
VBA che esegue una query di accodamento in tabella2 prelevando i dati dai
controlli della maschera.

--
Roberto

---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


Leo

unread,
Sep 17, 2002, 11:12:48 AM9/17/02
to

"Roberto da casa" <r.ma...@libero.it> ha scritto nel messaggio
news:wAHh9.6884$Hc7.1...@twister1.libero.it...

Caro Roberto purtroppo sono scarso a VBA se puoi darmi qualche indicazione
oppure consigliarmi un libro adatto. ti ringrazio.


Antonio Biso

unread,
Sep 17, 2002, 1:20:14 PM9/17/02
to
"Leo" <Leo2...@yahoo.it> ha scritto nel messaggio
news:TxHh9.5757$Av4.1...@twister2.libero.it...

>
> > Query di accodamento da una tabella ad un'altra.
> > Per i campi in più o non ci metti nulla o ci metti qualcosa deciso da te

> > (es. un trattino -)
> >
> > Antonio
> Allora laa maschera che mi dovro' creare per inserire i due campi in piu'
> avra' origine dalla query d'accodamento?

Ma guarda che per inserire dati in una tabella non c'è solo la maschera, ma
anche le query!!!

Antonio


Roberto da casa

unread,
Sep 17, 2002, 6:06:19 PM9/17/02
to

"Leo" <Leo2...@yahoo.it> ha scritto nel messaggio
news:QDHh9.6902$Hc7.1...@twister1.libero.it...
>
>[CUT]

>
> Caro Roberto purtroppo sono scarso a VBA se puoi darmi qualche indicazione
> oppure consigliarmi un libro adatto. ti ringrazio.

Di fatto con del codice VBA devi crearti dinamicamente la stringa SQL di una
query di accodamento, prelevando i valori dei dati da trsferire nei campi
della tabella dai controlli della tua maschera; quindi esegui la stringa SQL
usando il metodo RunSQL.

Quanto a manuali specifici non saprei cosa consigliarti, ma puoi cercare
sull'help in linea i seguenti argomenti:

1) Tipi di query che è possibile creare in Microsoft Access.
2) Query di comando: definizione ed utilizzo
3) Query di comando <definizione>
4) Query di comando
5) Query di acccodamento <definizione>
6) Istruzione INSERT INTO (SQL di Microsoft Jet)
7) Metodo RunSQL
8) Esempio di metodo RunSQL

Inoltre creati, usando la griglia di struttura, una query di accodamento e
dai uno sguardo a come è fatto il suo codice SQL.

Eventualmente, prima di impiccarti, rifatti vivo. :-)

Leo

unread,
Sep 19, 2002, 12:33:15 PM9/19/02
to

Ho creato la fatidica qry di accodamento, ma nonostante la tabella si
aggiorni mi restituisce all'esecuzione della qry un errore:
"imposibile accodare tutti i record nella query di accodamento"
....; numero di record non aggiunti alla tabella a causa di
violazioni chiavi:10; ....

Io ho un tabella (tabella1) con 8 campi (campo1...campo8) piena di
dati, mentre mi sono creato un'altra tabella ma vuota (che voglio
riempire con alcuni dati della tabella1) nella quale ci sono gli
stessi campi della tabella1 con in piu' altri due campi
(campo9-campo10).
Mi sono creato una maschera che prende i dati aggiornati nella
tabella2 e mi permette di inserire i campi mancanti.
Ora pero' da questa tabella2 devo ricavarmi tre report che mi
permettono la stampa di tutti quei record che abbiano un campo uguale
tra loro.

E' possibile far in modo che la qry di accodamento si aggiorni in
automatico all'apertura della maschera? ed inoltre avendo io una
casella combinata con tre vaoli all'interno voglio crearmi tre report
differenti tra loro che abbiano all'interno della casella compinata lo
stesso valore (acqua, vino, birra).

Roberto da casa

unread,
Sep 20, 2002, 6:15:22 AM9/20/02
to

"Leo" <leo2...@yahoo.it> ha scritto nel messaggio
news:3d89fa2d...@powernews.libero.it...

Hai problemi con la chiave primaria della tabella in cui stai accodando i
dati.

>
> Io ho un tabella (tabella1) con 8 campi (campo1...campo8) piena di
> dati, mentre mi sono creato un'altra tabella ma vuota (che voglio
> riempire con alcuni dati della tabella1) nella quale ci sono gli
> stessi campi della tabella1 con in piu' altri due campi
> (campo9-campo10).
> Mi sono creato una maschera che prende i dati aggiornati nella
> tabella2 e mi permette di inserire i campi mancanti.
> Ora pero' da questa tabella2 devo ricavarmi tre report che mi
> permettono la stampa di tutti quei record che abbiano un campo uguale
> tra loro.
>
> E' possibile far in modo che la qry di accodamento si aggiorni in
> automatico all'apertura della maschera? ed inoltre avendo io una
> casella combinata con tre vaoli all'interno voglio crearmi tre report
> differenti tra loro che abbiano all'interno della casella compinata lo
> stesso valore (acqua, vino, birra).
>

Quale è la chiave primaria di Tabella2 (quella con 10 campi)?
Se come spero è un campo di tipo contatore, non lo usare nella query di
accodamento, se lo gestisce da solo Access.

Leo

unread,
Sep 21, 2002, 5:43:10 AM9/21/02
to
On Fri, 20 Sep 2002 10:15:22 GMT, "Roberto da casa"
<r.ma...@libero.it> wrote:

Io ho copiato la tabella1 e da questa ho creto la tabella2 che ha la
stessa chiave primaria gli stessi campi, ma ha due campi in piu'.

Roberto da casa

unread,
Sep 21, 2002, 5:57:45 AM9/21/02
to

"Leo" <leo2...@yahoo.it> ha scritto nel messaggio
news:3d8c3efc...@powernews.libero.it...
[CUT]

> Io ho copiato la tabella1 e da questa ho creto la tabella2 che ha la
> stessa chiave primaria gli stessi campi, ma ha due campi in piu'.

Ho capito!
Ma se la chiave primaria č un contatore non copiare questo campo.

Leo

unread,
Sep 22, 2002, 6:11:46 PM9/22/02
to
On Sat, 21 Sep 2002 09:57:45 GMT, "Roberto da casa"
<r.ma...@libero.it> wrote:

>
>"Leo" <leo2...@yahoo.it> ha scritto nel messaggio
>news:3d8c3efc...@powernews.libero.it...
>[CUT]
>> Io ho copiato la tabella1 e da questa ho creto la tabella2 che ha la
>> stessa chiave primaria gli stessi campi, ma ha due campi in piu'.
>
>Ho capito!
>Ma se la chiave primaria č un contatore non copiare questo campo.
>
>--
>Roberto
>
--------------------------------------

Non č un campo contatore. E' semplicemente un caampo testo.

Roberto da casa

unread,
Sep 23, 2002, 12:25:42 PM9/23/02
to

"Leo" <leo2...@yahoo.it> ha scritto nel messaggio
news:3d8e403...@powernews.libero.it...
[CUT]
> Non è un campo contatore. E' semplicemente un caampo testo.

Ciò significa che come chiave primaria di un record da accodare hai usato il
valore di una chiave primaria di un record già accodato precedentemente:
questo non può eesere.

Una soluzione al tuo problema è proprio quella di usare come chiave primaria
un contatore che non andrai ad accodare nella query di accodamento; il
contatore potrebbe non avere altro compito che rendere i record univoci:
d'altra parte questo è il compito di una chiave primaria.

Leo

unread,
Sep 25, 2002, 4:43:10 PM9/25/02
to
On Mon, 23 Sep 2002 16:25:42 GMT, "Roberto da casa"
<r.ma...@libero.it> wrote:

>
>"Leo" <leo2...@yahoo.it> ha scritto nel messaggio
>news:3d8e403...@powernews.libero.it...
>[CUT]
>> Non è un campo contatore. E' semplicemente un caampo testo.
>
>Ciò significa che come chiave primaria di un record da accodare hai usato il
>valore di una chiave primaria di un record già accodato precedentemente:
>questo non può eesere.
>
>Una soluzione al tuo problema è proprio quella di usare come chiave primaria
>un contatore che non andrai ad accodare nella query di accodamento; il
>contatore potrebbe non avere altro compito che rendere i record univoci:
>d'altra parte questo è il compito di una chiave primaria.
>
>--
>Roberto

grazie ho fatto come hai detto ed oraa va bene. Ho bisogno di un
ultimo aiuto. Ho letto qualcosaa sul Metodo RunSQL, ma ho capito poco.

Su evento dopo inserimento dovrei creaare un codice VBA ne quale
dovrei inserire il comando DoCmd.RunSQL?
Dove richiamo la Qry d'accodamento precedentemente creata giusto?
Ma da quello che ho letto nella guida non ho capito molto cosa devo
inserire come istruzione SQL, il nome della qry d'accodamento creata?

Leo

unread,
Sep 25, 2002, 4:43:11 PM9/25/02
to
On Mon, 23 Sep 2002 16:25:42 GMT, "Roberto da casa"
<r.ma...@libero.it> wrote:

>
>"Leo" <leo2...@yahoo.it> ha scritto nel messaggio
>news:3d8e403...@powernews.libero.it...
>[CUT]
>> Non è un campo contatore. E' semplicemente un caampo testo.
>
>Ciò significa che come chiave primaria di un record da accodare hai usato il
>valore di una chiave primaria di un record già accodato precedentemente:
>questo non può eesere.
>
>Una soluzione al tuo problema è proprio quella di usare come chiave primaria
>un contatore che non andrai ad accodare nella query di accodamento; il
>contatore potrebbe non avere altro compito che rendere i record univoci:
>d'altra parte questo è il compito di una chiave primaria.
>
>--
>Roberto
>

Grazie dell'aiuto ho risolto l'errore.

Ora però non sono riuscito aa capire sull'evento dopo inserimento come
impostare il codice VBA.
Ho letto sulla guida il metodo RunSQL, ma ho caapio molto poco.
Dovrei inserire nella funzione suddetta l'oggetto DoCmd.RunSQL che fa
partire la query d'accodamento, giusto?

DoCmd.RunSQL Query1

dove Query1 è la query d'accodamento?

Roberto da casa

unread,
Sep 25, 2002, 6:05:17 PM9/25/02
to

"Leo" <leo2...@yahoo.it> ha scritto nel messaggio
news:3d921922...@powernews.libero.it...

No, non è giusto quello che hai scritto.
Se la query di accodamento te la sei preparata prima e si chiama Query1 per
eseguirla devi scrivere:

DoCmd.OpenQuery "Query1"

Il metodo RunSQL si adopera per eseguire direttamente una stringa SQL
presente nel codice VBA e che contiene il codice SQL della query di
accodamento.
Ad esempio, per accodare tutti i campi di tutti i record di Tabella1 nella
Tabella2, scriveresti:

DoCmd.RunSQL "INSERT INTO Tabella2 SELECT Tabella1.* FROM Tabella1;"

Per maggiori chiarimenti vedi sull'help il Metodo RunSQL ed il suo relativo
esempio.

Leo

unread,
Sep 26, 2002, 4:09:02 PM9/26/02
to
On Wed, 25 Sep 2002 22:05:17 GMT, "Roberto da casa"
<r.ma...@libero.it> wrote:

Ho capito, ma ora è sorto un problema quando parte la query
d'accodamento aggiunge sempre ogni volta che apro la maschera gli
stessi record perche'?
Come posso evitare che accada questo?

Io ho fatto come hai detto ho aaggiunto lla tabella2 un campo
contatore che non ha riferimenti con la tabella1. Ma quando faccio
partire la query questa mi aggiunge gli stessi record.

Roberto da casa

unread,
Sep 27, 2002, 5:07:55 AM9/27/02
to

"Leo" <leo2...@yahoo.it> ha scritto nel messaggio
news:97q6pu87iq5cil0ce...@4ax.com...
[CUT]
>
> Ho capito, ma ora č sorto un problema quando parte la query

> d'accodamento aggiunge sempre ogni volta che apro la maschera gli
> stessi record perche'?
> Come posso evitare che accada questo?
>
> Io ho fatto come hai detto ho aaggiunto lla tabella2 un campo
> contatore che non ha riferimenti con la tabella1. Ma quando faccio
> partire la query questa mi aggiunge gli stessi record.

Guarda che il mio era solo un esempio per farti capire come funziona il
metodo RunSQL: questo esempio copia tutti i record della Tabella1 in
Tabella2.
Ora sta a te creare la giusta query che ti accoda solo i record che vuoi
accodare.
Il thread č diventato lunghetto ed i problemi sono cambiati strada facendo:
non mi ricordo piů cosa volrvi accodare in Tabella2, ma tu lo saprai
benissimo, quindi puoi condizionare adeguatamente la query di accodamento.

Leo

unread,
Sep 27, 2002, 5:48:46 AM9/27/02
to
On Fri, 27 Sep 2002 09:07:55 GMT, "Roberto da casa"
<r.ma...@libero.it> wrote:

>
>"Leo" <leo2...@yahoo.it> ha scritto nel messaggio
>news:97q6pu87iq5cil0ce...@4ax.com...
>[CUT]
>>

>> Ho capito, ma ora è sorto un problema quando parte la query


>> d'accodamento aggiunge sempre ogni volta che apro la maschera gli
>> stessi record perche'?
>> Come posso evitare che accada questo?
>>
>> Io ho fatto come hai detto ho aaggiunto lla tabella2 un campo
>> contatore che non ha riferimenti con la tabella1. Ma quando faccio
>> partire la query questa mi aggiunge gli stessi record.
>
>Guarda che il mio era solo un esempio per farti capire come funziona il
>metodo RunSQL: questo esempio copia tutti i record della Tabella1 in
>Tabella2.
>Ora sta a te creare la giusta query che ti accoda solo i record che vuoi
>accodare.

>Il thread è diventato lunghetto ed i problemi sono cambiati strada facendo:
>non mi ricordo più cosa volrvi accodare in Tabella2, ma tu lo saprai


>benissimo, quindi puoi condizionare adeguatamente la query di accodamento.

Grazie per la tua disponibilità, vedrò come posso fare.

0 new messages