Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    VB6 Creare nuova tabella e copia dati

    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?

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    941
    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

  3. #3
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    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.)

    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 "
    Ovviamente al posto di 'SELECT *' e poi di ' FROM Tabella' puoi definire una estrazione complessa da più tabelle. La modalità potrebbe essere questa :
    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

  4. #4
    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.

  5. #5
    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

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    941
    scusa per dao...
    come si fa!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.