Ragazzi ho la necessita di copiare una tabella identica ad una'altra già creata,con i rispettivi campi e record.
tutto questo dovrei farlo via codice
c'è un modo per farlo?
grazie!!!
Ragazzi ho la necessita di copiare una tabella identica ad una'altra già creata,con i rispettivi campi e record.
tutto questo dovrei farlo via codice
c'è un modo per farlo?
grazie!!!
Agos
Ti posto un esempio in ADO, copia i record presenti in una tabella in un'altra con uguale struttura. Manca la gestione degli errori:
Non L'ho provata spero di non aver fatto errori. Ciaocodice:Private RS As New ADODB.Recordset, RS1 As New ADODB.Recordset 'Command Button su form Private Sub Command1_Click() If RS.State = 1 Then RS.Close RS.CursorLocation = adUseClient RS.Open ("Select * from TabellaPrincipale"), Db, adOpenKeyset, adLockOptimistic Do Until RS.EOF If RS1.State = 1 Then RS1.Close RS1.CursorLocation = adUseClient RS1.Open ("select * from TabellaSecondaria Where Chiave = " & RS("Chiave")& " "), Db, adOpenKeyset, adLockOptimistic If RS1.EOF Then RS1.AddNew For Each FldRS In RS.Fields RS1(FldRS.Name) = RS(FldRS.Name) Next RS1.Update End If RS1.Close RS.MoveNext Loop RS.Close End Sub
puoi fare una SELECT INTO. legge e copia tutto con un solo statement
Hai ragione però più che una select into una:
codice:Db.Execute "Insert into TabellaArrivo select * from TabellaPartenza"
la SELECT INTO crea anche la tabella di destinazione, mi pare fosse questo il quesito. se invece la tabella di destinazione esiste già, allora si puo' fare una INSERT INTO ... SELECT - ma IMHO le cose si complicano (record duplicati, record obsoleti, ecc).
insomma, dipende da quello che serve a agostinomiranda![]()
Per me l'istruzione Sql è:
codice:sql = "select TabellaOrigine.* into TabellaDestinazione from TabellaOrigine"
Giorgio
L'esperienza è il tipo di insegnante più difficile. Prima ti fa l'esame, e poi ti spiega la lezione. (Oscar Wilde)
adesso provo a fare una di queste soluzioni e poi vi farò sapere
grazie!!!
comunque a me mi serve una copia della tabella perchè quando rendo disponibile la lista all'utente prevedo che l'utente faccia delle cancellazioni su questa lista, come prevedo anche che dopo varie cancellazione si accorge di aver cancellato un record che non doveva.
Poichè i record sono immessi tramite codice da una lettura di un file con circa 700 nomi sembrerebbe assurdo far caricare i nomi, di nuovo, tutti insieme quando ad esempio ha gia cancellato 100 nomi, quindi avendo un duplicato della tabella originale, posso crearne un'altra che i suoi record è la lista completa - i giocatori che ci sono nella prima tabella in questo modo la terza tabella sarà formata solamente dai nomi cancellati.
Agos
Ragazzi ho cercato di provare l'istruzione che mi avete suggerito ma:
CONN.ConnectionString = LISTA.ConnectionString
Ma dopo questa istruzione l'applicazione non risponde più, facendo la gestione degli errori capisco che err.number è uguale a 91 cosa vorrà dire?
Agos
Ragazzi ho risolto tutto: lasciando perdere l'errore 91 che era un errore di sintassi, l'istruzione esatta per duplicare una tabella è:
INSERT INTO TABELLA2 SELECT * FROM TABELLA1
tutto quello che è in tabella 1 sarà uguale a tabella 2
grazie!!!
Agos