Ciao a tutti,
come faccio a copiare i dati esistenti di una tabella.mdb e incollarli in un'altra taballa1.mdb con la sostituzione dei dati?
Ciao a tutti,
come faccio a copiare i dati esistenti di una tabella.mdb e incollarli in un'altra taballa1.mdb con la sostituzione dei dati?
Utilizza la "SELECT ..... INTO ......" .
Ne abbiamo giā parlato ieri, cerca nei post precedenti.
Ciao,![]()
Ciao, Brainjar
Un modo potrebbe essere questo:
Fammi sapere se sono stato chiaro e se ti sono stato d'aiuto, Ciaocodice:Dim db As Database Dim SQL as string Dim rs1 As Recordset Dim db2 As Database Dim rs2 As Recordset Dim datitemp As String Set db = OpenDatabase("archivio.mdb") SQL = "SELECT * FROM tabellaDaCuiCopiare WHERE..." Set rs = db.OpenRecordset(SQL) datitemp = rs.Fields("NomeCampoDaCuiCopiare")'prendi il dato di cui vuoi farne la copia SQL = "SELECT * FROM tabellaInCuiCopiare WHERE..." Set rs = db.OpenRecordset(SQL) rs.fields("NomeCampoInCuiCopiare") = datitemp 'inserisci il campo che hai copiato nella nuova tabella
ciao,Originariamente inviato da mardok30
Un modo potrebbe essere questo:
Fammi sapere se sono stato chiaro e se ti sono stato d'aiuto, Ciaocodice:Dim db As Database Dim SQL as string Dim rs1 As Recordset Dim db2 As Database Dim rs2 As Recordset Dim datitemp As String Set db = OpenDatabase("archivio.mdb") SQL = "SELECT * FROM tabellaDaCuiCopiare WHERE..." Set rs = db.OpenRecordset(SQL) datitemp = rs.Fields("NomeCampoDaCuiCopiare")'prendi il dato di cui vuoi farne la copia SQL = "SELECT * FROM tabellaInCuiCopiare WHERE..." Set rs = db.OpenRecordset(SQL) rs.fields("NomeCampoInCuiCopiare") = datitemp 'inserisci il campo che hai copiato nella nuova tabella
potresti spiegare in cosa consistono i puntini?
SQL = "SELECT * FROM tabellaInCuiCopiare WHERE..."
poi quello ke mi serve č sostituire tutti i record di quella tabella in un colpo solo
p.s.
il db presnta diverse tabelle, uso il data1 come controllo
Se vuoi farlo in un colpo solo devi utilizzare per forza
la "SELECT .... INTO ...."
Devi avere il riferimento ad ADO 2.X nel progetto.codice:Dim ds As String Dim cn As ADODB.Connection Set cn = New ADODB.Connection ds = "PathNameCompletoDelDB" ' ad esempio "C:\Dati\MioDB.mdb" ' Apri la connessione With cn .CursorLocation = adUseClient .Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ds & ";" End With ' MiaTabella č la Tabella esistente, ' MiaNuovaTabella č quella da creare. On Error Resume Next cn.Execute "DROP TABLE MiaNuovaTABELLA" cn.Execute "SELECT * INTO MiaNuovaTABELLA FROM MiaTabella "
Ciao,![]()
Ciao, Brainjar
Prova un po':
Aggiungi questo riferimento al progetto:
Microsoft DAO 3.6 Object library
Ciaocodice:Dim db As Database Dim SQL As String Dim rs1 As Recordset Dim rs2 As Recordset Dim datitemp As String Set db = OpenDatabase("archivio.mdb") SQL = "SELECT * FROM tabellaDaCuiCopiare" Set rs = db.OpenRecordset(SQL) SQL = "SELECT * FROM tabellaInCuiCopiare" Set rs2 = db.OpenRecordset(SQL) Do While Not rs.EOF datitemp = rs.Fields("NomeCampoDaCuiCopiare") 'prendi il dato di cui vuoi farne la copia rs2.AddNew rs2.Fields("NomeCampoInCuiCopiare") = datitemp 'inserisci il campo che hai copiato nella nuova tabella rs2.Update rs.MoveNext Loop
Questo č in un loop solo.poi quello ke mi serve č sostituire tutti i record di quella tabella in un colpo solo
codice:Do While Not rs.EOF datitemp = rs.Fields("NomeCampoDaCuiCopiare") 'prendi il dato di cui vuoi farne la copia rs2.AddNew rs2.Fields("NomeCampoInCuiCopiare") = datitemp 'inserisci il campo che hai copiato nella nuova tabella rs2.Update rs.MoveNext Loop
Ciao,![]()
Ciao, Brainjar
Ragazzi,
io non voglio copiare un campo o un record, ma voglio sostituire tutti i record! con i nuovi
Puoi fare un ciclo per eliminare tutti i record della seconda tabella e poi usare il codice che ti ho dato
Ciao MARDOK30,Originariamente inviato da mardok30
Puoi fare un ciclo per eliminare tutti i record della seconda tabella e poi usare il codice che ti ho dato
allora diciamo ke non ho usato il tuo code ma questo:
Dim ds As String
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
ds = "PathNameCompletoDelDB" ' ad esempio "C:\Dati\MioDB.mdb"
' Apri la connessione
With cn
.CursorLocation = adUseClient
.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ds & ";"
End With
' MiaTabella č la Tabella esistente,
' MiaNuovaTabella č quella da creare.
On Error Resume Next
cn.Execute "DROP TABLE MiaNuovaTABELLA"
cn.Execute "SELECT * INTO MiaNuovaTABELLA FROM MiaTabella "
in pratica questo vā in parte in quanto, in questo modo non mi sostituisce i records ma me li accoda, e la cosa non mi stā bene, praticamente la tabella temp, deve fungere da temporanea, quindi esiste un modo all' apertura del form ke con un comando mi elimini tutti i record della tabella temp, x poi inserire i nuovi col code di sopra?.
ciao?