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

    Access collegamento tabelle dbf

    Salve a tutti, ho da risolvere un problema che mi fa impazzire da giorni...
    Ho un programma per la gestione dei preventivi, in una cartella ci sono diversi file .dbf da cui vorrei estrarre i dati con collega tabelle di Access.
    Il problema è che con alcune tabelle riesco a collegarmi mentre con altre no.
    Ho provato anche con connessione dati odbc ma mi restituisce questo errore "impossibile usare odbc per collegare una tabella esterna di microsoft jet o isam".
    Ho contattato il fornitore per un chiarimento e lui mi dice che alcune tabelle sono strutturate diversamente. Premetto che hanno tutte l'estensione .dbf ma credo che non voglia aiutarmi per farmi fare le modifiche a pagamento.
    Premetto che conosco pochissimo di codice ma se devo raggiungere un obbiettivo mi adatto discretamente.
    Sarebbe molto importante per me poter utilizzare quei dati o usare un sistema diverso per sfruttarli.
    Grazie a tutti in anticipo.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    21
    chiedo scusa, con Microsoft.Jet.OLEDB.4.0 o .12.0 non si connette?

    forse ho avuto un problema simile al tuo, nel posto proprio sotto questo

  3. #3
    Beh non saprei perchè non sò cosa è. Purtroppo come ho detto per me alcune "espressioni", codice o tipi di connessione sono tabù, ho sempre imparato di volta in volta x quello che mi serviva, (come in questo caso). Comunque se mi dici cosa serve ci provo.
    Grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    21
    in pratica io per connettermi ad un db access (*.mdb,*.accdb) uso questo driver. si usa anche in asp, in c# io ho trovato questa soluzione:

    codice:
    		OleDbDataReader dsFinder;
    		
    		OleDbConnection conn = new OleDbConnection(ConfigurationManager.ConnectionStrings["MiaConnessione"].ConnectionString);
    		conn.Open();
    		OleDbCommand ds = new OleDbCommand("SELECT * FROM MiaTabella", conn);
    		dsFinder = ds.ExecuteReader();
    		try
    		{
    			while (dsFinder.Read())
    			{
    // Tuo codice qui
    			}
    		}
    		finally
    		{
    			dsFinder.Close();
    			conn.Close();
    		}
    questo l'ho fatto per usare sempre lo stesso db, senza dover riscrivere ogni volta, ma ovviamente nel file web.config dovrai aggiungere sotto configuration:
    codice:
    	<connectionStrings>
     		<add connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|syscore.mdb;" name="LocalAccessDB" providerName="System.Data.OleDb" />
     	</connectionStrings>
    Raggiungo così jet, il 4.0 va bene per aprire i db access in formato 1997-2000 mentre il 12.0 va bene per aprire i db di formato access *.accdb, per l'appunto nativi di office 12. Puoi usare lo stesso ragionamento per tutte i db ole simili e cmq anche per gli altri non è cambi tantissimo. Ho provato una cosa simile con MySQL e funziona (se impostato in modalità normale e sullo stesso host)

  5. #5
    Devo fare un aggiunta.... ho provato a creare in database con Openoffice Base e nella creazione guidata "collega a database esistente" seleziono "dBASE" e quindi la cartella delle mie tabelle e il gioco è fatto.
    Cosa c'è di diverso?
    Ora premetto che conosco poco Access, ma se posso vorrei evitare di saltare da dx a sx con programmi senza andare a fondo piano piano con uno.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    21
    Originariamente inviato da gattommiao
    Devo fare un aggiunta.... ho provato a creare in database con Openoffice Base e nella creazione guidata "collega a database esistente" seleziono "dBASE" e quindi la cartella delle mie tabelle e il gioco è fatto.
    Cosa c'è di diverso?
    Ora premetto che conosco poco Access, ma se posso vorrei evitare di saltare da dx a sx con programmi senza andare a fondo piano piano con uno.
    Se non ricordo male ma non vorrei dire una cavolata mi sembra che gli mdf li puoi usare tramite SQLServer, il procedimento dovrebbe essere ugale, basta che cambi la stringa di connessione.

  7. #7
    Il problema è che non conosco sql tantomento il codice.
    Stavo pensando a una macro che mi rinomini i file in .xls ma non sò come impostarla.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    21
    i db mdf le apri/crei/modifichi con visual studio.
    la differenza (poi ce ne sono altre) più grossa che ho riscontrato fino ad ora è nell'uso del provider, cioè:
    access system.data.oledb, oledbcommand, oledbconnection ecc...
    sqlserver system.data.sqlclient, sqlcommand, sqlconnection ecc...

    in uno oledb e nell'altro sql. io uso access per ragioni di compatibilità ma ho sql express installato e devo dire che dal punto di vista del database non è affatto male, poi ci sarebbe anche MySQL in alternativa che è parecchio usato e hai la possibilità (più reale) di usare lo stesso db per applicazioni diverse senza impazzire dato che lo puoi trovare in host senza dare via un rene.

    ora detto questo c'è un tool che si chiama MSSMA, Microsoft SQL Server Migration Assistant 2008 for Access, di cui mi sembra si sia parlato anche in altri post che consente di creare un processo e fare un "mischione" e tirarne fuori quello che vuoi creando un progetto apposta in wizard.

    Poi i dBase si aprono con Jet4.0, ho controllato anche se non ho provato. Anche ADO.NET dovrebbe essere in grado di farlo:

    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=TuoDB.mdb;Extended Properties=DBASE III"

    SELECT * INTO Tabella IN 'TuoDB.mdb' FROM TuoFile.dbf

    Oppure se access 12:

    "Provider=Microsoft.Jet.ACE.12.0;Data Source=TuoDB.accdb;Extended Properties=DBASE III"

    SELECT * INTO Tabella IN 'TuoDB.accdb' FROM TuoFile.dbf

    Non vorrei dire una cavolata e non vorrei sbagliarmi, non mi è mai capitato quello che intendi, di solito o uso access con data base 1997-2000 o più raramente sqlserver.

    Se non sei obbliato ad avere un formato dbf per forza ti consiglio di fare copia e incolla in access senza includere nulla, così vai sul sicuro come compatibilità e come sbattimento.

  9. #9
    Grazie tantissimo per la spiegazione, ora ho qualcosa per fare un' pò di prove.
    Ci vorrà del tempo, (sono abbastanza ignorante in materia), ma lascerò un commento appena risolto.

    Salutoni

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.