[RESUELTO] Macro para borrar campos de una columna

Discute sobre las herramientas de la base de datos
Responder
JFRAN80
Mensajes: 22
Registrado: Mar Ago 06, 2019 8:09 am

[RESUELTO] Macro para borrar campos de una columna

Mensaje por JFRAN80 »

En esta ocasión, quiero saber si hay alguna macro, para borrar el contenido de una columna en una tabla.
Última edición por PepeOooSevilla el Jue Abr 23, 2020 10:03 am, editado 2 veces en total.
Razón: Icono de [RESUELTO]
Libreoffice 6.3.2.2 en Windows 10
Avatar de Usuario
mauricio
Mensajes: 6093
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Macro para borrar campos de una columna

Mensaje por mauricio »

Para esto no necesitas macro, o tal vez si, pero debes de dar más detalles de lo que "exactamente" quieres hacer.
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Longi
Mensajes: 811
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Macro para borrar campos de una columna

Mensaje por Longi »

"Pos eso!"
Que según lo que quieras, pero con un SQL "Delete" se puede eliminar todos los datos, o solo los que se quieran seleccionar.
Lo que en Access se llama una consulta de acción.

Un saludo! ;)
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
JFRAN80
Mensajes: 22
Registrado: Mar Ago 06, 2019 8:09 am

Re: Macro para borrar campos de una columna

Mensaje por JFRAN80 »

OK, a ver si se explicarme correctamente.

Tengo una base de datos con la cual saco los informes en Writer mediante la opción combinar correspondencia (se que esta forma es la menos ortodoxa pero me está funcionando). La cuestión es que ese informe de Writer tira de una consulta y hasta aquí todo bien, pero en Writer me aparecen todos los registros de la consulta y yo solo quiero que aparezcan aquel o aquellos que quiero imprimir.
Para ello, he creado un campo en mi tabla principal denominado "Informe", de tal modo que si el usuario quiere sacar únicamente un informe determinado de la consulta, indique en dicho campo "Si" o "No", obviamente si es si, la consulta filtra por dicho valor y en mi informe de writer aparece todo perfecto. Así estoy trabajando pero es un poco engorroso tener que volver a desmarcar manualmente los que he puesto como "Si" cuando no quiero que me aparezcan para la próxima vez.

Por ello, quiero que cuando se cierre la base de datos, automáticamente se borren todos los registros de la columna "Informe", es decir que no aparezca ni "Si" ni "No".

Si veis que no me explico bien, subo la base de datos, aunque me llevará un rato bastante grande porque tengo que borrar todos los datos confidenciales.

Gracias por vuestro tiempo!!
Libreoffice 6.3.2.2 en Windows 10
RMG
Mensajes: 3885
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Macro para borrar campos de una columna

Mensaje por RMG »

Hola,

Algo así como esto te puede valer.

Código: Seleccionar todo

Sub Actualizar()
Dim oStat As Object
Dim sSQL As String
oStat = ThisDatabaseDocument.CurrentController.ActiveConnection.CreateStatement
sSQL = "UPDATE ""nombretabla"" SET ""nombrecampo"" = NULL"
oStat.ExecuteUpdate(sSQL)
End Sub
Esta macro la puedes asignar al evento "Documento va a ser cerrado"

Desde la ventana principal menú Herramientas->Personalizar->Eventos->Documento va a ser cerrado

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
JFRAN80
Mensajes: 22
Registrado: Mar Ago 06, 2019 8:09 am

Re: Macro para borrar campos de una columna

Mensaje por JFRAN80 »

Efectivamente era la solución. Muchas gracias por vuestra ayuda.

Saludos,
Libreoffice 6.3.2.2 en Windows 10
Responder