Biblioteca Online : ¡La Suscripción ENI por 9,90 € el primer mes!, con el código PRIMER9. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. VBA Access (versión 2019 y Office 365)
  3. Microsoft Access 2019 e Internet
Extrait - VBA Access (versión 2019 y Office 365) Programar en Access
Extractos del libro
VBA Access (versión 2019 y Office 365) Programar en Access
2 opiniones
Volver a la página de compra del libro

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.

images/RI12_2.png

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:

images/RI12_3.png
  • 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.

Images/ri012_1.png

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:

Images/ri012_8.png

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:

Images/ri012_10.png

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.

Images/ri012_11.png

Se abre la interfaz de selección del archivo.

images/RI12_33.png

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:

Images/ri012_12.png

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.

Images/ri012_13.png

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.

images/RI12_36_1.png

Seleccione la ubicación del archivo. Ahora, la interfaz es la siguiente:

Images/ri012_14.png

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:

Images/ri012_15.png

2. La exportación de datos...