LibreOffice BASE- Abrir Archivo con Botón (programando en BASIC)
En Febrero de 2018, publiqué un vídeo dónde explicaba cómo abrir un archivo desde un Botón con Visual Basic (VBA) en Microsoft Access:
Esa función, la he ido puliendo añadiendo puntos de agregar el archivo, copiarlo, renombrarlo…
Y gracias a ese vídeo, me planteó un usuario el hacer lo mismo para LibreOffice, que aunque está también para Linux, en este ejemplo será para un LibreOffice instalado en Windows.
LibreOffice nos permite crear macros en BASIC, sin conocer este lenguaje, la suerte es que VBA es un “dialecto” de BASIC y la lógica de las órdenes puede ser bastante clara, no sabré programar, pero viendo ejemplos y buscando por foros se pueden conseguir muchas cosas.
La opción de crear Macros en LibreOffice, es muy curiosa, puedes crear una Macro en la propia base de datos, o dentro del propio BASE (símil de Access), para entrar en la edición de Macros podremos entrar cuando estemos en el formulario en modo Edición y en el menú superior en la siguiente ruta: Herramientas>Macros>Organizar Macros>Basic, en este momento, seleccionamos nuestra Base datos y damos al botón de Nuevo y nos abrirá el entorno de BASIC para programar nuestra nueva macro “Macro1”, en este ejemplo, la macro se la he renombrado a Explorer.
Damos por hecho, que ya tienes las tablas y el formulario creados, y únicamente hay que agregar un nuevo campo a la tabla llamado “Adjuntos”, el campo en el formulario y la subcarpeta en la carpeta donde tendremos alojada la base de datos.
SPOILER: Si pruebas el código sin ver el vídeo que está al final de este artículo, es posible que te salga el siguiente error:
|
Aquí el código, las líneas que tengan el apóstrofe delante, son comentarios que no se ejecutan o líneas que he usado para pruebas pero que luego no hace falta que se ejecuten:
Sub Explorer (oEvent as object)
‘1ro Declaramos las variables Dim oRoutaLink as String ‘oFrom, oField y oTfield son variables para conseguir leer la casilla de Texto llamada Adjuntos, Dim oForm as Object ‘Añadimos una librería que nos hará falta para conseguir la Ruta GlobalScope.BasicLibraries.LoadLibrary( “Tools” ) ‘Conseguimos la Ruta de la Base Datos, de esta manera, nos da igual que esté alojada en una carpeta local ”””””””””””””””””””””””’ ”””””””””””””””””””””””’ ”””””””””””””””””””””””’ ”””””””””””””””””””””””’ ‘Obtenemos que evento tiene el botón If Archivo = IDYES then
End sub |
NOTA: Cuidado al “copiar / pegar”, si hay algún espacio en blanco que no debe estar, va a dar fallo y, por supuesto, no se pueden pegar las imágenes.
Si entrais a editar la macro, os saldrá éste mensaje de error en la línea:
RutaLink = (DirectoryNameoutofPath(ThisComponent.Parent.getURL(), “/”) & “/”)
|
pero sin problemas, que al ejecutar, funciona.
Cualquier duda, vais planteando, y no os olvidéis en pasar por el canal de Youtube, dar al “me gusta” y suscribirse! a ver si para el 2021, llegamos a ser 1000 suscriptores!