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
ACCESS - Copia tra due tabelle
mercoledì 25 agosto 2004 - 16.13
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
bornslippy
Profilo
| Newbie
22
messaggi | Data Invio:
mer 25 ago 2004 - 16:13
Dim rs As DAO.Recordset
Dim rsapp As DAO.Recordset
Dim DB As DAO.DataBase
Set DB = CurrentDb
Set rs = DB.OpenRecordset("SELECT * FROM tblFornitori")
Set rsapp = DB.OpenRecordset("SELECT * FROM tblAppFornitori")
For I = 1 To cstNumFields
rsapp.Edit
rsapp.Fields(I).Value = rs.Fields(I).Value
rsapp.Update
Next I
Tramite questo codice riesco a copiare solo il primo record dalla tabella Fornitori alla tabella AppFornitori. Come posso fare per copiare tutti i record?
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
gio 26 ago 2004 - 07:18
E' un'operazione che esegui una tantum oppure il tuo software dovrà eseguire questa operazione più volte nel tempo ?
Non escludo che si possa fare anche direttamente in SQL con una query di accodamento piuttosto che ricorrere a 10 righe di codice VBA.
ciao
david
bornslippy
Profilo
| Newbie
22
messaggi | Data Invio:
gio 26 ago 2004 - 09:13
Ogni volta che devo annullare le modifiche dei dati contenuti in una tabella. L'idea è quella di memorizzare prima di eventuali modifiche i dati contenuti nella tabella originale in quella di appoggio in modo tale se annullo le modifiche (con un opportuno pulsante) posso recuperare tutti i dati andanto a copiare la tabella di appoggio su quella originale.
Ho migliorato il codice come segue:While Not rs.EOF
For I = 1 To cstNumFields
rsapp.Edit
rsapp.Fields(I).Value = rs.Fields(I).Value
rsapp.Update
Next I
rs.MoveNext
Wend
Concettualmente credo che sia giusto ma non funziona penso per vari motivi.
Per prima se la tabella AppFornitori è vuota quando esegue l'istruzione rsapp.Edit da il seguente messaggio "Nessun record corrente". Supponiamo che questa tabella abbia un record definito; in tal caso succede che i vari record di tblFornitori vengono sempre copiati sul medesimo record di tblAppFornitori in quanto dovrei eseguire anche l'istruzione rsapp.MoveNext ma anche in questo caso si ripresenta il problema sopra accennato.
La soluzione intuitivamente sembrerebbe che ogni volta che avanzo in tblFornitori crea un nuovo record (possibilmente vuoto) in tblAppFornitori e che questo diventi quello corrente per poi essere aggiornato con i dati contenuti nell'altra tabella. Il punto è esiste una istruzione VB che mi permetta di fare questo.
Mi rendo conto di essere stato molto contorto. GRAZIE
Bronzo
Profilo
| Junior Member
114
messaggi | Data Invio:
gio 26 ago 2004 - 12:58
Perché non fai una storedquery in access che si occupa di copiare i dati da una tabella d un'altra (queri di accodamento se vuoi aggiungerli di update se li vuoi sovrascriverli) e poi in vb non richiami semplicemente la storedquery?!
Ciao ;)
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 !