blog infocube | sviluppo applicazioni web

E’ una soluzione ad un problema che puo’ capitare a chi non ha installato MS office sulla porpria macchina e deve accedere ad un db Access 2007.

E’ una soluzione alternativa a openoffice base, che nella versione 2.4 consente di accedere ad un db access2007, ma che non ci consentiva di effettuare query o esportare dati in formato excel.

Sul sito microsoft danno la cosa come non possibile (almeno in questo post), ma noi in infocube ci siamo riusciti, seguendo proprio le loro istruzioni:

  • abbiamo installato SQL Server 2005 Express
  • abbiamo abilitato l’opzione consenti in-process da oggetti server -> server collegati -> provider -> Microsoft.ACE.OLEDB.12.0
  • abbiamo eseguito le seguenti istruzioni sostituendo opportunamente i percorsi ed il nome del server:
use master
GO
EXEC sp_addlinkedserver
    @server = N'nome del server collegato',
    @provider = N'Microsoft.ACE.OLEDB.12.0',
    @srvproduct = N'Access2007',
    @datasrc = N'C:\path\to\your\db.accdb'
GO

-- impostiamo un login anonimo
EXEC master.dbo.sp_addlinkedsrvlogin
    @rmtsrvname = N'nome del server collegato',
    @locallogin = NULL ,
    @useself = N'False'
GO

-- verifichiamo di aver effettuato il collegamento elencando le tabelle del server
EXEC sp_tables_ex N'nome del server collegato'
GO

-- Select all the rows from table1
SELECT * FROM [nome del server collegato]...table1

attenzione ad utilizzare i … tra il nome del server ed il nome della tabella.

  • abbiamo inoltre impostato l’accesso al file .accdb come consentito a tutti (da windows vista)
  • poi per poter accedere ai dati della tabella tramite una connessione JDBC abbiamo fatto una copia della tabella sul server MS 2005 express con la seguente query:
select * into [MyServer2005Express].dbo.table1 from [nome del server collegato]...[table1]

a questo punto la migrazione di una singola tabella e’ compiuta, si puo’ ripetere l’ultima istruzione per tutte le tabelle utente.

Lascia un commento

Copyright © infocube. All rights reserved.