Is there a method to connect to an MS Access database file (.mdb) using QGIS?
In particular I need to connect to a query in it.
The database does not have spatial data.
It's possible to connect via ODBC.
... or directly with MS Access Forms ...
There is a simple way:
You are able to define an action for each layer (see: Layerproperties). There you can input a Python script.
from win32com.client import Dispatch
dbname ="dbname.mdb"
dbForm = "frmname"
filter ='id= "[% "ID" %]"'
a=Dispatch("Access.Application")
a.Visible=True
objDB = a.CurrentDb()
if objDB is None:
a.OpenCurrentDatabase(dbname,True)
a.DoCmd.OpenForm(dbForm)
a.forms(dbForm).Filter = filter
a.forms(dbForm).FilterOn = True