Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Copiare una Tabella
venerdì 15 settembre 2006 - 17.15
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Paolobellesia
Profilo
| Newbie
3
messaggi | Data Invio:
ven 15 set 2006 - 17:15
In Access vorrei poter copiare una tabella collegata in una tabella locale da codice.
Per spiegarmi meglio, se io faccio copia-incolla di una tabella dalla maschera di gestione database, Access mi chiede che tipo di tabella volgio creare: collegata, solo struttura, struttura e dati e accoda... La mia sceta è la terza, e lui istantaneamente mi crea la nuova tabella con tutti i dati.
Ho provato ad utilizzare sia una query di accodamento / aggiornamento, ma mi copia record per record e quindi per tabelle molto corpose o collegate risulta lento.
Ho provato ad utilizzare anche il metodo CopyObject, ma non mi permette di scegliere quale tipo di tabella creare e quindi la crea uguale alla madre, cioè collegata.
Qualcuno ha idea di come fare?
grazie
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mar 19 set 2006 - 00:06
>Ho provato ad utilizzare anche il metodo CopyObject, ma non mi
>permette di scegliere quale tipo di tabella creare e quindi la
>crea uguale alla madre, cioè collegata.
Hai provato ad utilizzare la SELECT...INTO ?
Non l'ho provata ma potrebbe funzionare.
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
marcovivio
Profilo
| Expert
548
messaggi | Data Invio:
mar 19 set 2006 - 09:08
In Access c'è la possibilità di effettuare "query di creazione" tabella, che altro non è che una
SELECT * FROM table1
INTO table2
MV
Paolobellesia
Profilo
| Newbie
3
messaggi | Data Invio:
mar 19 set 2006 - 10:00
Grazie per le risposte, le ho provate entrambe.
Quella con "Insert Into table2 Select Table1.* From Tabel1" funziona bene.
Invece quella con "SELECT Table1.* INTO Table2 FROM Table1;" mi da dei problemi durante l'apertura della maschera.
Entrambe pero' copiano record per record e quindi hanno un tempo elevato di esecuzione per tabelle molto grandi, ho circa 100.000 record collegati in rete.
Cercavo qualcosa di immediato, come appunto fare copia-incolla dall'oggetto Tabelle della maschera di gestione database. Probabilmente si dovrebbe utilizzare qualcosa a livello diverso rispetto la programmazione access, pero non so cosa...
Se avete qualche altra idea...
grazie
Paolo
marcovivio
Profilo
| Expert
548
messaggi | Data Invio:
mer 20 set 2006 - 11:28
Se le tabelle sono molto grandi bisogna prendere in considerazione che ci vorrà del tempo prima di eseguire una copia, il metodo è quello della INSERT, a meno che tu non voglia fare copia-incolla, che comunque richiede il suo tempo.
La lentezza non dipende dal comando, ma è proprio la complessità dell'operazione a rendere lenta l'esecuzione.
MV
Paolobellesia
Profilo
| Newbie
3
messaggi | Data Invio:
mer 20 set 2006 - 15:16
In effetti hai ragione, la copia dei dati, se questi sono molti, comporta sempre un certo tempo, infatti ho provato anche con il metodo TansferDatabase dell’oggetto Docmd:
Docmd.TransferDatabase(TipoTrasferimento, TipoDatabase, NomeDatabase, TipoOggetto, Origine, Destinazione, SoloStruttura, AccessoArchivio)
che è addirittura piu lento perche va a prendere i dati in rete...
Quello che pero non capisco è che se si fa copia/incolla dalla maschera princiaple del progetto, risulta essere immediata. Penso che un metodo per rifarlo in automatico ci deve essere, forse non con il codice Access, ma in VB o in altro modo.
Se ti viene in mente qualcos'altro?
ciao e grazie
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !