MS Access non è un database che apprezzo molto... ma a volte capita di doversi interfacciare con software che ne fanno uso. Nel mio caso ho avuto necessita di estrarre dei dati da alcune tabelle, e l'ho fatto tramite PowerShell di Windows.
Prima di cominciare dobbiamo assicurarci di:
Lo script
Per accedere al database useremo le API AdoDB di Microsoft.
Creiamo un file elabora.ps1 (potete usare anche il notepad):
--- inizio file elabora.ps1 ---
$adOpenStatic = 3
$adLockOptimistic = 3
$cn = new-object -comobject ADODB.Connection
$rs = new-object -comobject ADODB.Recordset
# qui definiamo il percorso completo del file con il database access
$path = "C:\percorso\database.mdb"
# otteniamo una connessione al database
$cn.Open("Provider = Microsoft.ACE.OLEDB.12.0;Data Source = $path")
# eseguiamo una query (sostituitela con quella utile alle vostre esigenze)
$rs.Open("SELECT * FROM tabella", $cn, $adOpenStatic, $adLockOptimistic)
# analizziamo i risultati record per record
while(!$rs.EOF) {
# effettuiamo qualche elaborazione del record corrente
# (in questo caso ci limitiamo a stampare un campo sulla console)
$campo = $rs.Fields.Item("NOME_CAMPO").
Write-host "Il valore del campo è " $campo
$rs.MoveNext()
}
--- fine file elabora.ps1 ---
Possiamo lanciare lo script cliccando sull'icona del file, oppure se siamo dentro una shell dei comandi digitando:
powershell -file elabora.ps1
Conclusioni
Applicando questa metodologia accedere ai files di Access si è rivelato abbastanza semplice, e soprattutto ho apprezzato il fatto di non aver avuto necessità di installare un Access completo.