Newsgroup: it.comp.appl.access
Titolo: Copiare dati da una tabella in più tabelle

Buongiorno al NG
 
Approfitto della vostra pazienza per esporvi un problema che è sorto in negozio.
 
L'applicativo che ho sviluppato serve a fare offerte di porte di diverse marche, modelli, colori e collezione attraverso dei menù a tendina che parzializzano la scelta in funzione delle selezioni.
 
Vengo al problema e scusate la prolissità
 
Ho una tabella "anagrafica cliente" che ha, tra gli altri, i campi:
Idcliente (numerico)
Cognome
 
Una ulteriore tabella "testata ordine" che ha, tra gli altri, i seguenti campi:
Idordine (contatore)
Idcliente
 
All'apertura di questa maschera copio l'Idcliente della tabella "anagrafica cliente" e lo incollo nel campo "idcliente" della tabella "testata ordine"
Questa tabella mi permette di inserire più ordini distinti allo stesso cliente
 
Poi ho la tabella "corpo ordine" che ha, tra gli altri, i campi:
Idordine (numerico)
Idcliente (numerico)
 
In questa tabella ho tutte le righe d'ordine di tutti i clienti. In questo modo in ogni record ho il campi IdOrdine e Idcliente che mi permettono, con opportune query, di selezionare l'ordine del cliente che mi interessa.
 
Tutto funziona perfettamente da anni. 
Però ora i colleghi mi hanno fatto una richiesta, ovvero poter duplicare un ordine in modo da poter modificare le righe mantenendo il vecchio ordine.
 
La prima cosa che ho fatto è stata quella di fare una query di accodamento. Ma selezionando dalla tabella "corpo ordine" l'Idcliente e L'idordine e riaccodandola alla tabella "corpo ordine" mi sono accorto di avere praticamente duplicato le righe di ordine poiché manca il passaggio nella tabella "testa ordine" che assegna il nuovo Idordine.
 
Non sono pratico di Acces (versione 2003). Tutto quello che fa questo programma, dalla selezione del modello alla preventivazione, fatturazione e amministrazione l'ho fatto attraverso macro :-(  e leggendo i vostri preziosi consigli.
 
Potete aiutarmi in qualche modo?
Grazie Stefano


Devi creare una nuova testata ordine, dentro alla quale copierai tutti i 
dati dell'ordine di origine (che quindi sara' uguale all'ordine di 
origine ad eccezione del campo Idordine ed immagino Numero/Data ordine)
Se non vuoi fare a mano potresti fare un ciclo che legga tutti i campi 
della tabella e ricopi sulla nuova testata ad eccezione dell'IDordine
Poi sul nuovo ordine, copi una ad una (a mano o con ciclo) tutte le 
righe presenti sull'ordine di origine, che qundi avranno esattamente 
tutti i campi uguali alle righe vecchio ordine, ad eccezione del campo 
IdOrdine
Che sara' l'IDordine della nuova testata creata un attimo prima
Certo che se la condizione (attualmente_tutto_funziona & 
non_sai_come_fare) fosse vera, ti sconsiglierei di lavorare sul prodotto 
in uso
Fatti una bella copia in locale e lavora sul locale finche' sei sicuro 
100% del risultato
Non so perche' ma le macro non mi sono mai piaciute
All'inzio ti semplificano qualcosina alcune cose, ma piu' vai avanti e 
piu' diventano restrittive e limitanti come funzionalita'
Attualmente non uso nessuna macro, solo codice sui moduli
Ciao
 
 

 Ciao
 
Grazie!
Si, le macro una volta che le hai "assaporate" ti intorpidiscono il cervello. Se avessi imparato un po' di VB mi sarei trovato sicuramente meglio ma tant'è :-)
Grazie per la risposta. Non sono certo di aver capito ma me lo rileggo un paio di volte, mi ci applico e se non ho capito mi permetto di ridisturbare :-)
 
E si, certo! Lavoro su una copia... 8700 modelli, 255 collezioni, 348 essenze, 8000 preventivi mica li voglio buttare !
 
Grazie ancora