Newsgroup: it.comp.appl.access
Titolo: Come trasferire alcuni dati da una tabella ad un'altra?

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?

 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

 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?

 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
---------------------------------------------

 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.

 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

 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. :-)




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).


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.


 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'.

 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.



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

 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?


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?

 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.


 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.

 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.


benissimo, quindi puoi condizionare adeguatamente la query di accodamento.
Grazie per la tua disponibilità, vedrò come posso fare.