Microsoft Access 2019 e Internet
Introducción
En un mundo que se abre cada más a Internet, Microsoft Access 2019 integra los principales estándares de comunicación en este canal, y los formatos XML y HTML están totalmente soportados. El objetivo de este capítulo es abordar el contenido XML como contenedor de datos, los archivos que lo completan, así como el código VBA que va a permitir manipularlo con mayor facilidad, para optimizar el almacenamiento y la transferencia de información dentro de las aplicaciones que desea implementar. También se tratan los archivos HTML y las consultas HTTP.
Access 2019 y la navegación web
Aunque las aplicaciones de Office inicialmente no estaban dedicadas a la navegación en la Web, sin embargo es posible establecer interfaces entre su aplicación e Internet para navegar en una red local o en línea.
1. Los controles de Internet
a. Control interno de la aplicación: WebBrowser
Es posible añadir un navegador web en un formulario. Para esto, es suficiente con ir a la pestaña Creación del formulario en el que se desea añadir un navegador y hacer clic en Control ActiveX. En la ventana Insertar control ActiveX, seleccione Microsoft Web Browser y haga clic en OK.
Se añade un navegador automáticamente al formulario. Observe que esta etapa desencadena dos eventos en la aplicación Microsoft Access 2019:
-
La activación de la librería dedicada Microsoft Internet Controls:
-
Aparece un icono Control del navegador web en el grupo Controles de la pestaña Creación. En la siguiente captura de pantalla, el icono Control del navegador web se resalta en el centro de la imagen.
Principales propiedades del control WebBrowser
Propiedad |
Descripción |
BorderColor |
Representa el color del borde del control. |
Height |
Representa la altura del control en el formulario. |
Width |
Representa la anchura del control en el formulario. |
Principales propiedades del control WebBrowser.Object
Para acceder al control WebBrowser, es necesario pasar por su propiedad Object. De hecho, el control solo está en el ámbito del objeto ActiveX que contiene el WebBrowser.
Propiedad |
Descripción |
AddressBar |
Representa la barra de dirección del navegador (presente o no). |
Busy |
Indica si el navegador está ejecutando una tarea particular (carga de una página, etc.). |
Document |
Representa el documento web abierto en el navegador (página HTML u otro). |
LocationName |
Representa el título de la página web. |
LocationURL |
Representa la dirección URL de la página. |
Offline |
Indica si el navegador está en línea o no. |
ReadyState |
Representa el estado de disponibilidad del navegador. |
Principales métodos del control WebBrowser.Object
Método |
Descripción |
Navigate |
Permite navegar hacia una dirección. |
GoHome |
Permite navegar hacia la página de bienvenida. |
GoBack |
Permite navegar hacia la página anterior. |
GoForward |
Permite navegar hacia la página siguiente.... |
Access 2019 y el formato XML
El formato XML ya se ha mencionado en el marco del capítulo Optimizar las interfaces de Access - Ejemplo de cinta de opciones personalizada. En este capítulo, vamos a abordar su uso centrado en su capacidad de almacenar datos que se utilizarán en Access 2019, pero veremos también cómo va a ser posible saber más de su manejo en VBA.
1. El formato XML y los datos
a. El formato XML
El lenguaje XML se deriva del HTML, pero su objetivo principal es la administración de los datos en la Web. El sistema de etiquetas que utiliza se define por el creador del archivo, lo que simplifica mucho su lectura.
La estructura de un archivo XML siempre empieza de esta manera:
<?xml version="1.0" encoding="UTF-8"?>
O incluso:
<?xml version="1.0" encoding="ISO-8859-1"?>
Podemos leer la versión del XML (1.0), así como el modo de codificación del archivo.
Hay una versión 1.1 de XML, pero todavía no está lo suficientemente soportada por los diferentes actores de la Web para imponerse como versión de referencia.
Más abajo se muestra un ejemplo de archivo XML, resultado de una tabla:
<?xml version="1.0" encoding="UTF-8"?>
<dataroot xmlns:od="urn:schemas-microsoft-com:officedata"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="ENI_VACUNA_VAC.xsd">
ENI_VACUNA_VAC>
<VAC_ID>1</VAC_ID>
<VAC_VACUNA>Parvovirosis del perro </VAC_VACUNA>
<VAC_ANT_ID>1</VAC_ANT_ID>
</ENI_VACUNA_VAC>
<ENI_VACUNA_VAC>
<VAC_ID>2</VAC_ID>
<VAC_VACUNA>Moquillo del perro </VAC_VACUNA>
<VAC_ANT_ID>1</VAC_ANT_ID>
</ENI_VACUNA_VAC>
</dataroot>
Podemos ver que el conjunto de etiquetas comienza con < y termina con >, así como los diferentes campos de la tabla ENI_VACUNA_VAC. Dentro de las etiquetas podemos leer información, como por ejemplo Parvovirosis del perro para el campo VAC_VACUNA. También podemos ver dentro de una de las etiquetas la información:
xsi:noNamespaceSchemaLocation=" ENI_VACUNA_VAC.xsd"
Por tanto, ¿a qué hace referencia ENI_VACUNA_VAC.xsd?
b. El formato XSD
El formato XSD, de XML Schema Description, es un complemento y una necesidad que valida los datos...
VBA y el formato XML
Los aspectos de la operación que se han visto en la sección Access y los datos XML se pueden tratar directamente en VBA.
1. La importación de datos XML
Para importar los datos XML, se usa el método ImportXML disponible con el objeto Application. La sintaxis general de este método es la siguiente:
Application.ImportXML OrigenDatosXML, [OpcionesdeImportación]
La información OrigenDatosXML es una cadena de caracteres que indica la ubicación del archivo XML que se debe importar. El argumento opcional OpcionesImport permite indicar si la importación solo afecta a la estructura (acStructureOnly), la estructura y los datos (acStructureAndData) o la adición en una tabla existente (acAppendData). En caso de que el nombre de tabla ya se esté utilizando, Microsoft Access 2019 genera automáticamente un nuevo nombre de tabla.
Por ejemplo, para importar datos a una nueva tabla a partir del archivo XML ubicado en la carpeta C:\temp de la máquina, el código VBA deberá ser el siguiente:
Sub Ejemplo1()
Application.ImportXML "C:\temp\ENI_VACUNA_VAC.xml", _
acStructureAndData
End Sub
Permite importar los datos en una tabla ENI_VACUNA_VAC:
Si solo se quiere la estructura de la tabla, el código será el siguiente:
Sub Ejemplo2()
Application.ImportXML "C:\temp\ENI_VACUNA_VAC.xml", acStructureOnly
End Sub
Y el resultado sería el siguiente:
2. La exportación...
VBA y el formato HTML
1. Importar los datos HTML en la interfaz
Para importar datos en formato HTML, podemos pasar por la pestañaDatos externos de Microsoft Access 2019. Seleccione el icono Documento HTML haciendo clic en el menú Nuevo origen de datos - Desde un documento HTML.
Se abre la interfaz de selección del archivo.
Pulse en el botón Examinar para que se abra el cuadro de diálogo de búsqueda del archivo. Seleccione el archivo HTML que desea importar.
Haciendo clic en Aceptar, se abre la siguiente ventana:
El proceso de importación se desarrolla de la manera siguiente:
-
Indique si la primera fila contiene los encabezados de columnas,
-
Especifique el tipo de dato que contiene cada una de las columnas.
Aquí, el proceso de importación es idéntico al de los archivos planos, como los archivos CSV.
Haciendo clic en el botón Avanzado, se abre la interfaz con las opciones concretas de la importación.
2. Exportar los datos HTML en la interfaz
De la misma manera que es posible importar datos a formato HTML, es posible exportarlos.
Haciendo clic derecho en el objeto a exportar, seleccione Exportar - Documento HTML.
Seleccione la ubicación del archivo. Ahora, la interfaz es la siguiente:
Es posible especificar si se desea exportar los datos, junto al formato y el diseño, y si el archivo de destino se debe abrir cuando termine la exportación. Para terminar, si se ha aplicado...
VBA y el formato HTML
1. La importación de datos HTML
Para importar datos HTML, se usa el método TransferText disponible con el objeto DoCmd. La sintaxis general de este método es la siguiente:
DoCmd.TransferText acImportHTML, [SpecificationName], [TableName],
[FileName], [HasFieldNames], [HTMLTableName], [CodePage]
Los argumentos opcionales que pueden utilizar son los siguientes.
Argumento |
Descripción |
SpecificationName |
Representa las especificaciones que se pueden guardar en Access. |
TableName |
Representa el nombre de la tabla que se importa. |
FileName |
Representa la ubicación del archivo HTML que sirve de fuente. |
HasFieldNames |
Indica si la primera línea del archivo HTML contiene el nombre de los campos o no. |
HTMLTableName |
Representa el nombre de la tabla en el archivo HTML, contenido entre las etiquetas <CAPTION> y </CAPTION>. |
CodePage |
Representa la página de código, es decir, el alfabeto utilizado para la visualización de los datos. |
Por ejemplo, para importar los datos en una nueva tabla a partir del archivo XML que está en la carpeta C:\temp de la máquina, el código VBA deberá ser el siguiente:
Sub Ejemplo1()
DoCmd.TransferText acImportHTML, , "ENI_VACUNA_VAC", _
"C:\temp\ENI_VACUNA_VAC.html", True
End Sub
Permite importar los datos en una tabla ENI_VACUNA_VAC: