|
Página 1 de 1
|
Autor |
Mensaje |
Ninfus
Usuario
Registrado: Diciembre 2010
Mensajes: 9
Edad: 52
|
Método Alternativo
Buenas de nuevo
Tengo lo siguiente, que funciona bien:
PUBLIC SUB Button10_Click()
IF TextBox9.Text = "" THEN
Message.Error("Introduzca un parámetro de búsqueda válido.")
ELSE
Resultado = Conexion.Exec("Select * from datos where telefono OR movil OR nickname OR email OR nombre OR passwd=" "'" & TextBox9.Text & "'")
IF Resultado.Available THEN
TextBox1.Text = Resultado["nombre"]
TextBox2.Text = Resultado["nickname"]
TextBox3.Text = Resultado["passwd"]
TextBox4.Text = Resultado["cargo"]
TextBox5.Text = Resultado["area"]
TextBox6.Text = Resultado["telefono"]
TextBox7.Text = Resultado["movil"]
TextBox8.Text = Resultado["email"]
MuestraCampos
ELSE
Message.Error("No se han encontrado datos coincidentes")
TextBox9.Clear
END IF
END IF
END
¿Existe alguna forma de simplificar y/ o hacer mejor el código?
Me explicaron hace un par de días lo de usar filtros, pero no me queda muy claro.
Lo que quiero es realizar una búsqueda con un textbox en una tabla de SQLite y que me muestre los resultados en sus respectivos TextBox.Text
Ya leí un par de posts en este foro relacionados, pero la verdad no entiendo demasiado.
|
#1 Domingo, 19 Diciembre 2010, 01:17 |
|
|
fabianfv
Analista Programador
Registrado: Octobre 2009
Mensajes: 495
Edad: 50 Ubicación:
|
Re: Método Alternativo
Ninfus: la solución es análoga a la que te dio Shordi en el otro hilo excepto que esta vez se trata de una consulta.
El primer problema con tu código es que no funciona bien. Si te pareció que sí, es porque no hiciste una cantidad mínima de pruebas que te mostraran que la consulta está mal construida o bien lo que querías era recuperar todos los datos de la tabla. En cualquier caso, debería ser algo así:
'Recuperar todos los datos de la tabla:
Resultado = Conexion.Exec("Select * from datos")
'La misma consulta usando Find:
Resultado = Conexion.Find("datos")
'Recuperar todos los campos pero sólo de aquellas filas que cumplan con determinadas condiciones
Resultado = Conexion.Exec("Select * from datos where nickname=&1 OR nombre=&2", txtNickName.Text, txtNombre.Text)
'La misma consulta usando Find
Resultado = Conexion.Find("datos", "nickname=&1 OR nombre=&2", txtNickName.Text, txtNombre.Text)
Si no te queda claro no dudes en preguntar. Pero trata de ser preciso indicando qué quieres hacer y cuál es la duda.
Saludos cordiales.
=================== Cómo programar con Gambas
Speed Books: informática libre.
|
#2 Domingo, 19 Diciembre 2010, 02:46 |
|
|
soplo
Analista Programador
Registrado: Septiembre 2009
Mensajes: 843
Edad: 44
|
Re: Método Alternativo
Lo que te dice FabianFv es correcto. De todas formas si hay una forma de recorrer los campos y mover a los respectivos textboxes.No se si es muy funcional pero por decir que no quede
Deberías hacer un grupo con todos los textboxes y luego recorrer los campos de la tabla de este modo. En el ejemplo el grupo de textboxes se llama grupo
Habría que elaborarlo algo mas pero la idea es que es posible hacer un bucle recorriendo los campos de una tabla y hacer algo con ellos
|
#3 Domingo, 19 Diciembre 2010, 09:10 |
|
|
ahtonio
Programador
Registrado: Octobre 2009
Mensajes: 144
Edad: 58 Ubicación: Zaragoza
|
Re: Método Alternativo
Hola, creo que con un poco de esfuerzo se puede hacer algo muy generico, para que te valga en todos los casos.
Yo ya lo tengo hecho para mi uso particular con una clase que llamo desde el formulario que maneja la tabla y para mostrar los datos tengo una función que recorre los controles (textbox, valuebox, etc.) que son susceptibles de mostrar datos y que en su propiedad tag lleva el nombre del campo que contiene. Es recursiva para poder recorrer los controles dentro de containers que contengan containers. El objeto primario que lo llama es el form por supuesto y si dentro de este existe/n otros contenedores (vbox, hbox, etc) los lee igualmente.
Este el esqueleto:
No obstante, para el caso simple que mencionas, simplemente recortaríamos lo no necesario, así:
Observa que estás perdiendo la posibilidad de usar la propiedad tag para otra cosa.
Esto es solo una idea y un esqueleto. Donde la quieres llevar depende de ti.
Un saludo
Antonio
xxx
|
#4 Domingo, 19 Diciembre 2010, 13:24 |
|
|
Ninfus
Usuario
Registrado: Diciembre 2010
Mensajes: 9
Edad: 52
|
Re: Método Alternativo
Muchas gracias a los tres por los comentarios.
Por un lado tenéis razón (FabianFV y Soplo) . El query de SQLIte está mal, pero me funciona en un form con 6 TextBox ¿Por qué? No lo se. La misma sintáxis para otro form con 36 TextBox, no funciona. Gracias a vuestra ayuda, ya está corregido.
Ahtonio, muchas gracias. Como no tengo prisa por avanzarle a la aplicación, voy a probar tu método, ya que me resulta por demás, interesante. Te agradezco mucho.
Salu2 a todos.
|
#5 Domingo, 19 Diciembre 2010, 18:41 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 1
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|