🎃 Grandes descuentos en libros en línea, eformaciones y vídeos*. Código CALABAZA30. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí

Microsoft Access 2021 e Internet

Introducción

En un mundo que se abre cada más a Internet, Microsoft Access 2021 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 2021 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. Controles internos de la aplicación: NavegadorWeb y Microsoft 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. Una vez que se crea el formulario hay dos soluciones disponibles, cada una con sus propiedades y métodos.

Control NavegadorWeb - WebBrowserControl

Microsoft 365 ahora integra un navegador web directamente en los controles predeterminados. Puede agregarlo haciendo clic en el icono en la cinta Diseño de formulario, en el grupo Controles.

Images/cap12_pag2.png

Una vez que se haya posicionado su navegador en su formulario, se abre una ventana de configuración que le permite seleccionar un enlace de hipertexto o incluso apuntar a una página web existente.

Images/cap12_pag3.png

Por ejemplo, si desea que su navegador se inicie tan pronto como se abra el formulario en la página de Ediciones ENI, puede indicar en la URL base la dirección http://www.ediciones-eni.com.

Principales propiedades del control WebBrowserControl

Propiedad

Descripción

BorderColor

Representa el color del contorno del control.

Height

Representa la altura del control en el formulario.

Width

Representa el ancho del control en el formulario.

ControlSource

Representa el hipervínculo abierto en el navegador (página HTML u otra).

LocationURL

Representa la dirección URL de la página.

ReadyState

Representa el estado de disponibilidad del navegador.

Principales metodos del control WebBrowserControl

Metodo

Descripción

Requery

Permite refrescar la página actual.

SetFocus

Permite dar el foco al navegador.

Ejemplos del controlador del WebBrowserControl

Para conectarse a una dirección durante la carga del formulario (aquí, el control WebBrowserControl tiene el nombre WBC1), el código será el siguiente:

Private Sub Form_Load()  
    WBC1.ControlFuente = "=""http://www.ediciones-eni.com"""  
End Sub 

Control Microsoft WebBrowser

El otro tipo de control disponible se llama Microsoft Web Browser. Para añadirlo a su formulario, es suficiente en primer lugar hacer clic en Control ActiveX. En la ventana Insertar control ActiveX, seleccione Microsoft Web Browser y haga clic en OK.

Images/cap12_pag6.png

Se añade un navegador automáticamente al formulario. Observe que esta etapa desencadena dos eventos en la aplicación Microsoft Access 2021:

  • La activación de la librería dedicada Microsoft Internet Controls:

Images/cap12_pag7.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/cap12_pag8.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...

Access 2021 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 2021, 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 parcial de archivo XML, resultado de una tabla:

<dataroot xmlns:od="urn:schemas-microsoft-com:officedata" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 
xsi:noNamespaceSchemaLocation="ENI_EMPLEADOS_EMP.xsd" 
gene-rated="2022-08-30T14:13:22"> 
<ENI_EMPLEADOS_EMP> 
<EMP_ID>1</EMP_ID> 
<EMP_APELLIDO>Sánchez</EMP_APELLIDO> 
<EMP_NOMBRE>Ángel</EMP_NOMBRE> 
<EMP_INICIO_TRABAJO>2017-11-06T00:00:00</EMP_ INICIO_TRABAJO> 
<EMP_OFI_ID>1</EMP_OFI_ID> 
<EMP_SALARIO>0</EMP_SALARIO> 
</ENI_EMPLEADOS_EMP> 
<ENI_EMPLEADOSS_EMP> 
<EMP_ID>2</EMP_ID> 
<EMP_APELLIDO>María</EMP_APELLIDO> 
<EMP_NOMBRE>Sánchez</EMP_NOMBRE> 
<EMP_INICIO_TRABAJO>1999-10-13T00:00:00</EMP_INICIO_TRABAJO> 
<EMP_OFI_ID>0</EMP_OFI_ID> 
<EMP_SALARIO>0</EMP_SALARIO> 
</ENI_EMPLEADOS_EMP> 
</dataroot> 

Podemos ver que el conjunto de etiquetas comienza con < y termina con >, así como los diferentes campos de la tabla ENI_EMPLEADOS_EMP. Dentro de las etiquetas podemos leer información, como por ejemplo Ángel para el campo EMP_NOMBRE. También podemos ver dentro de una de las etiquetas la información:

xsi:noNamespaceSchemaLocation=" ENI_EMPLEADOS_EMP.xsd" 

Por tanto, ¿a qué hace referencia ENI_EMPLEADOS_EMP.xsd?

b. El formato XSD

El formato XSD, de XML Schema Description, es un complemento y una necesidad que valida los datos de XML. Relacionado con un archivo XSD, el XML no podrá contener otro tipo de datos diferente al previsto por el diseñador.

A continuación, el archivo XSD que se refiere al archivo XML presentado en el ejemplo anterior (simplificado para su lectura):

<?xml version="1.0" encoding="UTF-8"?>  
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"  
xmlns:od="urn:schemas  
-microsoft-com:officedata">  
<xsd:element name="dataroot"> 
<xsd:complexType>...

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 2021 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_EMPLEADOS_EMP.xml", _  
    acStructureAndData 
End Sub 

Permite importar los datos en una tabla ENI_EMPLEADOS_EMP:

Images/cap12_pag31.png

Si solo se quiere la estructura de la tabla, el código será el siguiente:

Sub Ejemplo2()  
Application.ImportXML "C:\temp\ENI_EMPLEADOS_EMP.xml", acStructureOnly 
End Sub 

Y el resultado sería el siguiente:

Images/cap12_pag32.png

2. La exportación de datos XML

Para exportar datos XML en VBA, podemos llamar al método ExportXML del objeto Application. La sintaxis general de este método es la siguiente:

Application.ExportXML(ObjectType, SourceData, [DataTarget], 
[SchemaTarget], [PresentationTarget], [ImageTarget], [Encoding], 
[OtherFlags], [WhereCondition], [AdditionalData]) 

Los argumentos...

VBA y el formato HTML

1. Importar los datos HTML en la interfaz

Para importar datos en formato HTML, podemos pasar por la pestaña Datos externos de Microsoft Access 2021. Seleccione el icono Documento HTML haciendo clic en el menú Nuevo origen de datos - Desde un documento HTML.

Images/cap12_pag36.png

Se abre la interfaz de selección del archivo.

Images/cap12_pag37.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/cap12_pag38.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/cap12_pag39.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/cap12_pag40.png

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

Images/cap12_pag41.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_EMPLEADOS_EMP", _  
    "C:\temp\ENI_EMPLEADOS_EMP.html", True  
End Sub 

Permite importar los datos en una tabla ENI_EMPLEADOS_EMP:

Images/ri012_15.png

2. La exportación...