Discussione chiusa
Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Aprire un file DBF

  1. #1
    L'avatar di worldvb
    worldvb non è in linea Scolaretto
    Luogo
    Milano
    Post
    142

    Aprire un file DBF

    Salve a tutti
    premetto che è la prima volta che mi trovo a laborare con i DB in VB quindi scusate se non sarò chiaro.
    Il mio problema è questo: io devo creare un programma che legga i dati di un file in formato DBF (che sul mio computer risulta essere una tabella di Microsoft Visual FoxPro) e che li scriva in un DB access (MDB). Il primo ostacolo che devo superare è questo: come leggo i dati dal file DBF (che viene aperto con Microsoft Visual FoxPro)?

    Grazie a tutti

  2. #2
    L'avatar di _gas
    _gas non è in linea Scribacchino
    Luogo
    Italy
    Post
    1,345
    Per importare in un file mdb dei files dbf utilizza questo codice (è una base ovviamente, adattala al tuo scopo! )
    codice:
    Dim CONN As New ADODB.Connection
    Dim sPath As String
    Dim sDBFFile As String
        
        sPath = "C:\DBF Files"  'Cartella che contiene i files DBF
        sDBFFile = "DBFTable"   'Nome del file DBF da importare, in vista di un probabile ciclo...
        
        CONN.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sPath & ";Extended Properties=DBASE III"
        CONN.Execute "SELECT * INTO " & sDBFFile & " IN 'C:\Destinazione.mdb' FROM " & sDBFFile
    Se conosci ADO ti rendi conto di quanto sia semplice la cosa!
    si certo... e poi c'era la marmotta che confezionava la cioccolata...

  3. #3
    L'avatar di gibra
    gibra non è in linea Amanuense
    Luogo
    Breganze (VI)
    Post
    6,048
    Quote Originariamente inviato da _gas
    Per importare in un file mdb dei files dbf utilizza questo codice (è una base ovviamente, adattala al tuo scopo! )
    codice:
    Dim CONN As New ADODB.Connection
    Dim sPath As String
    Dim sDBFFile As String
        
        sPath = "C:\DBF Files"  'Cartella che contiene i files DBF
        sDBFFile = "DBFTable"   'Nome del file DBF da importare, in vista di un probabile ciclo...
        
        CONN.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sPath & ";Extended Properties=DBASE III"
        CONN.Execute "SELECT * INTO " & sDBFFile & " IN 'C:\Destinazione.mdb' FROM " & sDBFFile
    Se conosci ADO ti rendi conto di quanto sia semplice la cosa!
    per _GAS:
    Funziona con tutti gli altri DBF in formato dBase, ma purtroppo non funziona con i files DBF di Visual FoxPro. l'ho provato sulla mia pelle.


    per worldvb:
    1) devi decidere 'come' intendi accedere al database in questione.
    Vi sono 2 modalità: a livello database (DBC) o tabella (DBF), se possibile è meglio la prima che ti permette un'acceso a tutte le tabelle.
    Aprendo una connessione al DBC potrai accedere alle tabelle esattamente come fai in un MDB Access, quindi non sei costretto ogni volta ad aprire una connessione ad ogni singola tabella.

    Una tipica stringa di connessione al database DBC è questa:

    gsDBCPath = "C:\Arca2000P\Ditte\Prova\Private.dbc"

    Set cn = New ADODB.Connection
    cn.Mode = adModeReadWrite ' accedo in lettura/scrittura
    cn.Open "Driver={Microsoft Visual FoxPro Driver};" & _
    "SourceType=DBC;BackgroundFetch=YES;Collate=MACHIN E;" & _
    "SourceDB=" & gsDBCPath & ";" & _
    "Exclusive=No"



    2) Ti occorre il provider OLEDB specifico per FoxPro (quello fornito con VB è 'leggermente' vetusto): ti raccomando quindi di andarti a scaricare l'ultima versione 9.0 che risolve un bel po' di problemi.
    Non ho il riferimento sotto mano, fai una ricerca sul sito di VisualFoxPro.

    3) Infine ti consiglio di guardare qui www.connectionstrings.com per avere le stringhe di connessione nelle diverse modalità.

    Ciao

  4. #4
    L'avatar di _gas
    _gas non è in linea Scribacchino
    Luogo
    Italy
    Post
    1,345
    Caspita, questo non lo sapevo proprio Gibra, grazie dell'informazione!
    Io ho avuto (purtroppo) parecchia esperienza con i dbIII provenienti dal Catasto, e funzionava benone.
    Anche se credo che il nostro amico intendesse dire che i files vengono associati per estenzione a FoxPro ma non che siano stati creati con esso... aspettiamo un suo verdetto!
    si certo... e poi c'era la marmotta che confezionava la cioccolata...

  5. #5
    sal21 non è in linea Scolaretto
    Post
    457
    Quote Originariamente inviato da _gas Visualizza il messaggio
    Per importare in un file mdb dei files dbf utilizza questo codice (è una base ovviamente, adattala al tuo scopo! )
    codice:
    Dim CONN As New ADODB.Connection
    Dim sPath As String
    Dim sDBFFile As String
        
        sPath = "C:\DBF Files"  'Cartella che contiene i files DBF
        sDBFFile = "DBFTable"   'Nome del file DBF da importare, in vista di un probabile ciclo...
        
        CONN.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sPath & ";Extended Properties=DBASE III"
        CONN.Execute "SELECT * INTO " & sDBFFile & " IN 'C:\Destinazione.mdb' FROM " & sDBFFile
    Se conosci ADO ti rendi conto di quanto sia semplice la cosa!

    Ciao gas....
    Ho notato che questo codice crea una nuova tabella nel db access...
    Ma se io ho gia una tabella MIATABELLA nel db access e volessi fare l'append dei records del dbf in questa tabella????

    Nota:
    La tabella access attaverso un codice viene ripulita di tutti i vecchi records presenti in questo caso avro sempre una tabella con i records del db bdf aggiornata.

  6. #6
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,158
    Blogs
    5
    sal21: non riaprire discussioni di 3 anni fa.

    Il tuo interlocutore potrebbe non frequentare piu' il forum e si fa comunque confusione.

    Apri un nuovo thread, spiegando bene il problema e attendi le risposte.
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

Discussione chiusa

Discussioni simili

  1. Articolo: [VBA] Lettura e scrittura File Di Testo
    Da dragone bianco nel forum Microsoft Office, Access, VBA
    Risposte: 0
    Ultimo Post: 27-09-2006, 17:00
  2. Articolo: Interagire con i file - 1° parte
    Da freezer nel forum Visual Basic 6
    Risposte: 0
    Ultimo Post: 18-11-2005, 09:51
  3. Articolo: Gestione dei file: tipi di file
    Da freezer nel forum Visual Basic 6
    Risposte: 0
    Ultimo Post: 18-11-2005, 09:50
  4. Risposte: 3
    Ultimo Post: 21-09-2005, 19:53
  5. netmeeting
    Da Massimo70 nel forum Visual Basic 6
    Risposte: 20
    Ultimo Post: 26-05-2005, 18:16

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi