Con VB6 avrei bisogno di creare una nuova tabella in un DB Access già esistente ed incollarvi dei dati provenienti da un'altra tabella simile ma da un altro DB Access. E' possibile?
Con VB6 avrei bisogno di creare una nuova tabella in un DB Access già esistente ed incollarvi dei dati provenienti da un'altra tabella simile ma da un altro DB Access. E' possibile?
Non so se usi Rdo Ado o Dao..
io posso darti una mano in Dao...
Io farei così...
1 Step
Carica tutti i dati della tabella in una Flexgrid
2 Step
Controlla se sono uguali
3 Step
Passa i Dati dalle Flexgrid al nuovo Database
4 Controlla se sono uguali le due tabelle
per il codice...
già l' ho risolto...
devo trovarlo un pò in giro
e poi te lo mando..
ma sicuramente ci saranno soluzioni migliori
domando solo qualcosa di nuovo
Usa SQL.
Ti posto un semplice esempio in ADO, ma funziona anche in RDO e DAO.
(In RDO la Execute la invochi sull'oggetto rdoConnection, in DAO
sull'oggetto Database.)
Ovviamente al posto di 'SELECT *' e poi di ' FROM Tabella' puoi definire una estrazione complessa da più tabelle. La modalità potrebbe essere questa :codice:Dim sPathInizio As String Dim sPathFinale As String sPathInizio = "c:\DB\DBGP1.mdb" ' Il DB di partenza sPathFinale = "c:\DB\DBGP2.mdb" ' Il DB dove aggiungere la tabella Set Connessione = New adodb.Connection Connessione.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sPathInizio & ";Persist Security Info=False" ' Tabella è il nome della tabella dalla quale estrarre i dati ' Ricorda di sostituirlo con quello corretto Connessione.Execute "SELECT * INTO newtable2 IN " & Chr$(34) & sPathFinale & Chr$(34) & " FROM Tabella "
1) Definisci la tua query (SELECT .....FROM .....)
2) Inserisci le clausole INTO .. IN ... prima della specifica FROM :
(SELECT ..... INTO .. IN ... FROM .....)
N.B. La coppia di virgolette, Chr$(34), è indispensabile alla sintassi
dell'istruzione.
Ciao.![]()
Ciao, Brainjar
OK, ti ringrazio, funziona con DB senza Password, nel mio caso i 2 DB di Access sono protetti da una Password identica, ho provato con la stringa che utilizzo nella mia applicazione, ma non funziona
code:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\percorso\DB.mdb;Jet OLEDBatabase Password=XXX;", adOpenKeyset, adLockOptimistic, adCmdText
Mi potresti dare qualche altro suggerimento?
...E se i 2 DB avessero una Password differente?
A presto...spero.
Finalmente ci sono riuscito in questo modo:
1 Ho tolto le Password dei Database di Access
2 Trasferito tabella
3 Reinserito le Password
Che ne pensate? c'è una via più breve?
code:
'ELIMINA PASSWORD
Private Sub elimina_password()
Dim strConnect As String
strConnect = ";DATABASE=" & "C:\DB.mdb" & _
";PWD=XXXX"
' Open in exclusive mode with existing password, if any
Set db = OpenDatabase("", True, False, strConnect)
' ELIMINA password
db.NewPassword "XXXX", ""
Dim strConnect2 As String
strConnect2 = ";DATABASE=" & "C:\DB_Inizio.mdb" & _
";PWD=XXXX"
' Open in exclusive mode with existing password, if any
Set db = OpenDatabase("", True, False, strConnect2)
' ELIMINA password
db.NewPassword "XXXX", ""
MsgBox "DATABASE SENZA PASSWORD"
End Sub
'COPIA ED INCOLLA TABELLA
Private Sub Trasferisci_Tabella_Click()
elimina_password
'INIZIA COPIA ED INCOLLA TABELLA
On Error GoTo ESISTE
Dim sPathInizio As String
Dim sPathFinale As String
sPathInizio = "C:\DB_INIZIO.mdb" ' Il DB di partenza
sPathFinale = "C:\DB.mdb" ' Il DB dove aggiungere la tabella
Set Connessione = New adodb.Connection
Connessione.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sPathInizio & ";Persist Security Info=False"
Connessione.Execute "SELECT * INTO Tabella_new IN " & Chr$(34) & sPathFinale & Chr$(34) & "FROM Tabella"
Connessione.Close
Dim ok As Integer
ESISTE:
If Err Then
Resume Next
inserisci_Password
Exit Sub
'MsgBox ("TABELLA GIA ESISTENTE")
Else
ok = MsgBox("DATABASE AGGIORNATO")
End If
inserisci_Password
Command4.Visible = False
cmd_OK.Visible = True
End Sub
'RIPRISTINA PASSWORD
Private Sub inserisci_Password()
strConnect = ";DATABASE=" & "C:\DB.mdb" & _
";PWD="
' Open in exclusive mode with existing password, if any
Set db = OpenDatabase("", True, False, strConnect)
' INSERISCI password
db.NewPassword "", "XXXX"
'Dim strConnect2 As String
strConnect2 = ";DATABASE=" & "C:\DB_Inizio.mdb" & _
";PWD="
' Open in exclusive mode with existing password, if any
Set db2 = OpenDatabase("", True, False, strConnect2)
' INSERISCI password
db2.NewPassword "", "XXXX"
MsgBox "DATABASE CON PASSWORD"
End Sub
Ciao Ciao
scusa per dao...
come si fa!!!