Porque mi código no ejecuta la búsqueda

Tengo la siguiente rutina, ya revise toda la información, pero no hace la búsqueda ya intente con 2 procedimientos distintos y no más no hace nada, tengo access 2013

Private Sub txtbusqueda_AfterUpdate()
Dim Consulta As String
If Not IsNull(Me.cmbcampo) Then
Consulta = "select Idcodigo,nombre,nombregenerico"
Consulta = Consulta & "from productos"
Consulta = Consulta & "where " & Me.cmbcampo & "like*" & Me.txtbusqueda & "*"
Me.Lista.RowSource = Consulta
End If
End Sub

La segunda opcion que intente es 

Como”*”&[forms]![BUSCAR_productos]![txtBuscarprod]&”*”

Pero ninguna de las dos efectúa la búsqueda alguna idea del motivo porque no hace la búsqueda

En las dos opciones al ejecutar me da en blanco

2 Respuestas

Respuesta
2

En el primer código te faltan espacios en blanco antes del From, del WHERE, del Like, otro después del Like, y posiblemente te falten comillas simples si buscas un valor de texto :

Private Sub txtbusqueda_AfterUpdate()
Dim Consulta As String
If Not IsNull(Me.cmbcampo) Then
Consulta = "select Idcodigo,nombre,nombregenerico"
Consulta = Consulta & " from productos"
Consulta = Consulta & " where [" & Me.cmbcampo & "] like '*" & Me.txtbusqueda & "*'"
Me.Lista.RowSource = Consulta
End If
End Sub

Te he añadido unos corchetes alrededor del nombre del campo por si se diera el caso de que tus nombres de campo tengan espacios en blanco, acentos o signos raros. Si no es así no serían necesarios, pero tampoco pasa nada si los dejas.

Si en cmbCampo vas a escoger campos que no sólo sean de texto, convendría que la sql la hicieses en función de esos campos, con un Select Case o con los Ifs que necesites, pues no se busca igual un valor numérico que uno de texto o una fecha

Una disculpa de antemano le explico lo que pretendo hacer tengo un formulario para hacer vales de salida de materiales a la hora que entro al subformulario como tengo muchos productos y es imposible recordar los código quiero que en la parte que solicite el código oprimiendo "enter" llame a una rutina para que pueda buscar el producto que requiero y al dar esc me ponga el código seleccionado

Tengo la idea de buscar por dos campos una es por el nombre comercial y la otra por el nombre genérico

Mi tabla que uso se llama productos y mis campos son idcodigo, nombre y nombregenerico, esta búsqueda la estaba haciendo en un formulario, pero como le comento al ejecutar se pone en blanco. Otro dato idcodigo es numérico y los otros dos campos son texto.

Agradezco mucho la ayuda que me han prestado

Sinceramente, Luz, no sé que tiene que ver tu última respuesta con el problema, y menos aún la imagen que pones (lo poco que puedo ver de ella), pues no le veo ninguna relación con tu código...

Respuesta
3

Luz, partiendo de la base que no sé que hace o para que sirve el CmbCampo, si tengo la tabla Productos

Y tengo un formulario, donde tengo un ¿combinado? Llamado CmbCampo, que como te dije no sé para que sirve, un cuadro de texto TxtBusqueda y un cuadro de lista llamado Lista

Y escribo algo en CmbCampo, para que no sea nulo y escribo una cadena en txtBusqueda

Cuando pulso Enter

Y el código del evento Después de actualizar del cuadro de texto es

Private Sub TxtBusqueda_AfterUpdate()
If Not IsNull([CMBCampo]) Then
Lista.RowSource = "select Idproducto,nombreproducto,preciounidad from productos where nombreproducto like ""*""&'" & Me.TxtBusqueda & "'&""*"""
End If
End Sub

El problema que tienes es que no defines bien las variables, las comillas no las pones en el sitio correcto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas