problema en código buscar

Iniciado por andaluz, 30 Mayo 2019, 08:27 AM

0 Miembros y 1 Visitante están viendo este tema.

andaluz

Hola a todos,

Tengo un problemilla a la hora de presentar los usuarios. Les explico, es sencillo:

A través de un ComboBox (cmb_Apell_Nomb_busc) selecciono el usuario y luego tengo un cuadro de lista (Usu_Listar) en el cual muestro todos los usuarios y un bonton de buscar (btn_Usuario_Buscar).

Lo que quiero hacer es que al seleccionar el usuario en el ComboBox en el cuadro de lista solo me muestre el usuario que he seleccionado.

Aquí les dejo el código que he implementado.

Código (vb) [Seleccionar]

Private Sub btn_Usuario_Buscar_Click()

    Dim consulta As String
   
    If IsNull(Me.cmb_Apell_Nomb_busc) Then
        MsgBox "Seleccione un usuario de la lista", vbExclamation, "Aviso"
    Else
        consulta = "SELECT Nombre, Apellidos FROM Usuarios WHERE Apellidos= '" & Me.cmb_Apell_Nomb_busc2 & "*'"
        ' MsgBox (consulta)
        Me.Usu_Listar.RowSource = consulta
    End If

End Sub


He querido ver lo que me arroja consulta pero me da error.

Un saludo y gracias de antemano,

tincopasan


andaluz

no me arroja ningún error, en el msgbox me muestra la consulta.

Código (vb) [Seleccionar]


SELECT Nombre, Apellidos FROM Usuarios WHERE Apellidos= ""



no me arroja ningún dato de la tabla Usuarios

Eleкtro

#3
Vamos a ver, por que aparte de no dar información esencial sobre el error, tampoco te explicas muy bien...

Cita de: andaluz en 30 Mayo 2019, 08:27 AM
A través de un ComboBox (cmb_Apell_Nomb_busc) selecciono el usuario

Define 'usuario'. ¿Estás seleccionando un nombre?, ¿apellidos?, ¿o el nombre completo incluyendo los apellidos?...

En el primer y último caso, el motivo por el cual la consula no te devuelve ningún resultado sería muy obvio, puesto que solamente estás comprobando la propiedad 'Apellidos'...

Citar... WHERE Apellidos= '" & Me.cmb_Apell_Nomb_busc2 & "*'

De todas formas, ¿como te va a funcionar eso?, ¡si le estás pasando un ComboBox!, o al menos eso se intuye por el nombre, ya que no especificas lo necesario. No sabemos que estás seleccionando en el control 'cmb_Apell_Nomb_busc', ni que tipo es "cmb_Apell_Nomb_busc2", que por el nombre parece otro ComboBox distinto...

Aparte, en ese código tuyo que he citado, la posición del asterisco/wild card está mal. El asterisco debe estar encerrardo entre las comillas dobles, no entre las comillas simples. De todas formas eso no va a solucionar el problema, por que no estás utilizando el operador adecuado para buscar una cadena de texto parcial mediante asteriscos...

Prueba usando el operador CONTAINS:
SELECT Nombre, Apellidos FROM Usuarios WHERE CONTAINS(Apellidos, "*apellido parcial*")

o puedes probar también con el operador LIKE...
SELECT Nombre, Apellidos FROM Usuarios WHERE Apellidos LIKE "%apellido parcial%")

Saludos.








PirSys

Cita de: Eleкtro en 31 Mayo 2019, 16:06 PM
Vamos a ver, por que aparte de no dar información esencial sobre el error, tampoco te explicas muy bien...

Define 'usuario'. ¿Estás seleccionando un nombre?, ¿apellidos?, ¿o el nombre completo incluyendo los apellidos?...

En el primer y último caso, el motivo por el cual la consula no te devuelve ningún resultado sería muy obvio, puesto que solamente estás comprobando la propiedad 'Apellidos'...

De todas formas, ¿como te va a funcionar eso?, ¡si le estás pasando un ComboBox!, o al menos eso se intuye por el nombre, ya que no especificas lo necesario. No sabemos que estás seleccionando en el control 'cmb_Apell_Nomb_busc', ni que tipo es "cmb_Apell_Nomb_busc2", que por el nombre parece otro ComboBox distinto...

Aparte, en ese código tuyo que he citado, la posición del asterisco/wild card está mal. El asterisco debe estar encerrardo entre las comillas dobles, no entre las comillas simples. De todas formas eso no va a solucionar el problema, por que no estás utilizando el operador adecuado para buscar una cadena de texto parcial mediante asteriscos...

Prueba usando el operador CONTAINS:
SELECT Nombre, Apellidos FROM Usuarios WHERE CONTAINS(Apellidos, "*apellido parcial*")

o puedes probar también con el operador LIKE...
SELECT Nombre, Apellidos FROM Usuarios WHERE Apellidos LIKE "%apellido parcial%")

Saludos.



Aqui la solucion propuesta por el usuario.

o puedes probar también con el operador LIKE...
SELECT Nombre, Apellidos FROM Usuarios WHERE Apellidos LIKE "%apellido parcial%")