Cómo utilizar PostGIS desde Microsoft Access

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

datos externos

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

vincular al origen

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.

origen de datos de archivo

5. Clic en el botón Nuevo…

crear nuevo origen de datos

6. Selecciona PostgreSQL ANSI y pincha en Siguiente…

7. Escribe un nombre (en nuestro caso pgworld) y Siguiente de nuevo.

final

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

postgreSQL connection

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

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.

trueis1cursores

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.

vincular tabla countries

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

tabla_final

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.

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:

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’;

consulta SQL

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

resultado espacial

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!

Si quieres aprender PostGIS, inscríbete en nuestro curso online de bases de datos espaciales: PostGIS.

Más usos de Access con PostgreSQL aquí: http://www.postgresonline.com/journal/archives/24-Using-MS-Access-with-PostgreSQL.html

Let’s connect!

Date de alta en nuestro newsletter
y recibe este ebook gratuito

Y una vez al mes recibirás las últimas novedades del sector GIS y de nuestros cursos