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.

  • In windows, start the ODBC Administrator and define your Datasource (Microsoft Access Driver).
  • In QGIS go to Layer/Add Layer/Vector Layer/database: Type=ODBC.
  • Set up a new Connection. Host should be "localhost" if your database is local on your machine. Database Name is the same name you defined before in the ODBC Administrator.

... or directly with MS Access Forms ...

There is a sipmple way:

You are able to define a action for each Layer (see: Layerproperties) There you can input a pythonscript.

from win32com.client import Dispatch

dbname ="dbname.mdb"

dbForm = "frmname"

filter ='id= "[% "ID" %]"'



objDB = a.CurrentDb()

if objDB is None:



a.forms(dbForm).Filter = filter

a.forms(dbForm).FilterOn = True

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.