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.
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.
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.
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:
-
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...
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:
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:
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.
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_EMPLEADOS_EMP", _
"C:\temp\ENI_EMPLEADOS_EMP.html", True
End Sub
Permite importar los datos en una tabla ENI_EMPLEADOS_EMP: