[RESUELTO] Formulario muestra el resultado de una consulta

Discute sobre las herramientas de la base de datos
Responder
lopezdiaz2596
Mensajes: 4
Registrado: Dom May 20, 2018 12:17 pm

[RESUELTO] Formulario muestra el resultado de una consulta

Mensaje por lopezdiaz2596 »

Buenas, lo que intento hacer es lo siguiente:
Tengo una base de datos con una sola tabla en la que se almacenan distintas calles y a los centros de salud a los que pertenecen. Mi intención es crear un formulario (si es posible) en el cual haya un campo donde yo pueda introducir el nombre de la calle y me muestre en pantalla los datos de esa calle. La consulta que quiero ejecutar es la siguiente "SELECT * FROM "callejero" WHERE "nombre_via" LIKE '%<nombre calle>%'", por ejemplo que introduzca VALLE y me muestre todas las calles que contengan VALLE en el nombre. La duda mayormente es como configurar ese campo donde introducir el nombre de la calle para que la consulta lo tome como una variable y lo aplique en la clausula LIKE. Gracias de antemano! :) .
Última edición por mauricio el Mar May 22, 2018 3:18 pm, editado 2 veces en total.
Razón: Marcar icono de resuelto
OpenOffice 4.1.5
Windows 10
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Crear un formulario que muestre el resultado de una cons

Mensaje por RMG »

Hola,

Referente a este tema o similar existen varios ejemplos en el foro, si haces una búsqueda lo encontraras. También en este enlace puedes encontrar ayuda.

https://forum.openoffice.org/es/forum/v ... m.php?f=70

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)
lopezdiaz2596
Mensajes: 4
Registrado: Dom May 20, 2018 12:17 pm

Re: Crear un formulario que muestre el resultado de una cons

Mensaje por lopezdiaz2596 »

Gracias! He estado mirando códigos para la macro que tengo que crear pero ya hace años que no utilizo el lenguaje y estoy un poco verde. El codigo que voy a tratar de reutilizar es el siguiente:

Código: Seleccionar todo

Sub BotonAbreConsulta(Event As Object)
Dim sNombreC As String
consultacomodin=Event.Source.Model.Tag
AbreConsulta(sNombreC,ThisDatabaseDocument.Currentcontroller.ActiveConnection)
End Sub

Sub AbreConsulta(sNombreC As String,Con As Object) 
Dim oDes
Dim sURL As New com.sun.star.util.URL
Dim oDisObj
Dim oProps(5) As New com.sun.star.beans.PropertyValue
oDes=CreateUnoService("com.sun.star.frame.Desktop")
sURL.Complete=".component:DB/DataSourceBrowser"
oDisObj=oDes.QueryDispatch(sURL,"_Blank",com.sun.star.frame.FrameSearchFlag.CREATE)
oProps(0).Name="ActiveConnection"
oProps(0).Value=Con
oProps(1).Name="CommandType"
oProps(1).Value=com.sun.star.sdb.CommandType.QUERY
oProps(2).Name="Command"
oProps(2).Value=sNombreC
oProps(3).Name="ShowMenu"
oProps(3).Value=True
oProps(4).Name="ShowTreeView"
oProps(4).Value=FALSE
oProps(5).Name="ShowTreeViewButton"
oProps(5).Value=FALSE 
oDisObj.Dispatch(sURL,oProps)
End Sub
Supongo que la primera parte del código es la que debo asignar a pulsar el botón de búsqueda pero no se como adaptarlo para que tome el texto que introduzca y lo sitúe en una consulta.
Algunos detalles de la base de datos son los siguientes:
  • Nombre tabla : callejero
  • Nombre consulta : consultacomodin
  • Nombre boton : boton1
  • Nombre campo de texto : nombre_calle
Si hiciese falta algo más de información puedo darla sin problema.
Siento las molestias.
Gracias.
OpenOffice 4.1.5
Windows 10
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Crear un formulario que muestre el resultado de una cons

Mensaje por RMG »

Hola,

No te hace falta ninguna variable, con una consulta con parámetros es suficiente. Mira el ejemplo.

En diseño de la consulta pones

En la linea Campo UPPER ( "Nombre_Calle" )

En la linea Criterio COMO UPPER ( '%' || :ContieneNombre ) || '%'

La guardas y le pones un nombre que es el que asignaras a la macro

Al botón le asignas esta macro.

Código: Seleccionar todo

Sub BotonAbreConsulta(Event As Object)   'Asigna la macro al botón
   Dim sNombre As String
   sNombre = "NombreDeLaConsulta"
   AbreConsulta(sNombre,ThisDatabaseDocument.Currentcontroller.ActiveConnection)
End Sub

Sub AbreConsulta(sNombre As String)
	Dim Control as Object
	Control = ThisDatabaseDocument.CurrentController
	If ( Not Control.isConnected() ) Then
	Control.connect()
	End If
    Control.loadComponent(com.sun.star.sdb.application.DatabaseObject.QUERY, sNombre,FALSE )
End Sub
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)
lopezdiaz2596
Mensajes: 4
Registrado: Dom May 20, 2018 12:17 pm

Re: Crear un formulario que muestre el resultado de una cons

Mensaje por lopezdiaz2596 »

He editado la consulta y ahora cada vez que abro el formulario me pide que escriba la palabra para ejecutarla y funciona perfecto. He asignado la macro al botón y que pudiese escribir en el campo de texto y ejecutar la consulta pulsando el botón. Adjunto la foto del formulario. https://gyazo.com/71924733b39399eec795fa618b20b54c
OpenOffice 4.1.5
Windows 10
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Crear un formulario que muestre el resultado de una cons

Mensaje por RMG »

Hola,

Creo que estamos hablando de cosas distintas. Una cosa es que se abra una consulta que contenga algo de lo que pones en el parámetro al abrirla, consulta con parámetros, que es el ejemplo que te he puesto, y otra es que en el formulario el control tabla te filtre algo de lo que contenga el cuadro de texto. Por eso es necesario explicar y acompañar con un ejemplo lo que se quiere hacer.

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)
lopezdiaz2596
Mensajes: 4
Registrado: Dom May 20, 2018 12:17 pm

Re: Crear un formulario que muestre el resultado de una cons

Mensaje por lopezdiaz2596 »

Entonces no complico más el tema y lo doy por solucionado! Muchas Gracias!!!! :)
OpenOffice 4.1.5
Windows 10
Longi
Mensajes: 804
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Crear un formulario que muestre el resultado de una cons

Mensaje por Longi »

Acuérdate de marcarlo como resuelto, si así lo consideras.

Un saludo! ;)
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
Responder