En este tutorial vamos a ver cómo podemos utilizar nuestras bases de datos espaciales PostGIS desde Microsoft Access. Veremos cómo crear una tabla vinculada, cómo migrar de Access a PostgreSQL y cómo realizar consultas GIS aprovechando las funciones espaciales propias de PostGIS desde MS Access.
Aunque MS Access sea una aplicación de Windows y PostgreSQL tenga sus raíces en Unix, los dos trabajan muy bien juntos. ¿Por qué? En gran parte es debido a que el controlador ODBC de PostgreSQL está bien mantenido y tiene actualizaciones frecuentes.
Para este ejemplo vamos a utilizar Microsoft Access 2010 y PostgreSQL 9.3 + PostGIS 2.1.
Instalación del controlador PostgreSQL ODBC
La última versión del controlador ODBC de PostgreSQL se puede descargar en:
http://www.postgresql.org/ftp/odbc/versions/msi/
La versión actual (en la fecha de publicación de este artículo) es psqlodbc_09_03_0100.zip que fue lanzada en diciembre de 2013. Una vez descomprimido el archivo debemos ejecutar el archivo psqlodbc.msi
Vincular la tablas de PostGIS
1. Crear una base de datos de Access en blanco
2. Ir a Datos Externos > Base de datos ODBC

3. Selecciona la opción Vincular al origen de datos creando una tabla vinculada.

4. Selecciona la pestaña Origen de datos de archivo. De esta manera usaremos un DSN de archivo en lugar de un origen de datos de equipo porque la cadena DSN de archivo se incrusta en la base de datos MS Access, por lo tanto no tendremos que configurar el DSN en cada equipo en el que utilizaremos la base de datos MS Access. Los DSN de equipo tienen que ser configurados en cada PC individual.

5. Clic en el botón Nuevo…

6. Selecciona PostgreSQL ANSI y pincha en Siguiente…
7. Escribe un nombre (en nuestro caso pgworld) y Siguiente de nuevo.

8. Al finalizar debemos rellenar los datos de la conexión:

9. Haz clic en el botón Connection y desactiva la opción Bools as Char.

10. En la página 2 marca la casilla True is -1, y desmarca cursores actualizables, como se muestra en la siguiente imagen y haga clic en OK.
11. Acepta en las ventanas y selecciona las tablas que deseas añadir a Access. Nosotros elegiremos la tabla countries para realizar sobre ella una consulta espacial.

12. Este es el resultado de la tabla de países abierta en Access:

Todas las actualizaciones realizadas sobre la tabla se realizarán sobre la base de datos de origen.
Además de la vinculación de tablas, Microsoft Access puede importar y exportar datos de PostgreSQL.
Migrar de Access a PostgreSQL
Para exportar las tablas de Access es suficiente tener configurado el controlador OODBC con la base de datos de PostgreSQL relacionada.
Desde Access iremos a la tabla que queremos exportar y haciendo botón derecho sobre ella Exportar > Bases de datos de ODBC. De este modo se creará la tabla con su contenido en PostgreSQL.
Realizando consultas espaciales con MS Access
Para realizar una consulta espacial debemos crear una consulta de Paso a través. Con este tipo de consultas podemos utilizar las funciones nativas de PostgreSQL o las consultas espaciales de PostGIS que Access no tiene ni idea de lo que hacen. Además podemos hacer referencia a las tablas y vistas de PostgreSQL sin necesidad de tenerlas vinculadas.
1. En primer lugar vamos a la pestaña Crear > Diseño de consulta.

2. A continuación elegimos la tabla que queremos que participe en la consulta y seleccionamos como Tipo de consulta Paso a través:

3. En el constructor de consultas vamos escribir este pequeño código que lo que hace es pedir las coordenadas (en formato WKT) del centroide de China:
SELECT name, ST_AsText (ST_Centroid(geom)) as Centroide
FROM countries
WHERE name = ‘China’;

4. Ejecutamos la consulta y este es el resultado que obtenemos:

Este tipo de consultas también se pueden realizar en BASE de LibreOffice. Para ello debemos ir a menú >Edit > Run SQL command directly, Este es el equivalente en BASE a las consultas de Paso a través de MS Access.
Si te ha gustado esta entrada deja un comentario o compártela!
Más usos de Access con PostgreSQL aquí: http://www.postgresonline.com/journal/archives/24-Using-MS-Access-with-PostgreSQL.html
Licenciado en Geografía. Máster en Sistemas de Información Geográfica. Consultor GIS desde el año 2004. En MappingGIS desde el año 2012 para ayudarte a impulsar tu perfil GIS y diferenciarte de la competencia. Echa un vistazo a todos nuestros cursos de SIG online.
