Aviso en combolike si no existe la cadena introducida

Utilizo un combolike para filtrar registros en un formulario continuo y quisiera que cuando no coincida la cadena introducida me de un aviso de que no existe. El código que utilizo es este.

Private Sub cbobusqueda_Change()

' Elimina el filtro del formulario,
' si el cuadro combinado está vacío
If Nz(Me.cbobusqueda.Text) = "" Then
Me.Form.Filter = ""
Me.FilterOn = False
' Si se filtra un ítem del cuadro combinado,
' realiza una búsqueda exacta en el formulario
Else
If Me.cbobusqueda.ListIndex <> -1 Then
Me.Form.Filter = "[Artículo] = '" & _
Replace(Me.cbobusqueda.Text, "'", "''") & "'"
Me.FilterOn = True
' Filtra en formulario con una coincidencia parcial
Else

Me.Form.Filter = "[Artículo] Like '*" & _
Replace(Me.cbobusqueda.Text, "'", "''") & "*'"
Me.FilterOn = True

End If
' Mueve el cursor al final del cuadro combinado
Me.cbobusqueda.SetFocus
Me.cbobusqueda.SelStart = Len(Me.cbobusqueda.Text)
End If
End Sub

Que tendría que añadir

1 respuesta

Respuesta
2

La verdad es que no entiendo porque complicar tanto el código, cuando se puede hacer muy sencillo.

Si tengo el formulario Copia, donde voy a usar el País como "filtro", que no es tal filtro. Tengo un cuadro de texto donde voy a escribir una cadena de un país.

Puedes ver que hay 92 registros. Si escribo una c en el cuadro de texto, al que he llamado Elegir

Automáticamente sólo me deja aquellos registros que en el campo País tengan una c, por eso sólo ves 25. Ahora le voy a poner una r

Al aceptar el cursor se vuelve al control Elegir para que cambies la cadena.

Y el código no puede ser más sencillo

Private Sub Elegir_Change()
If Nz(DCount("*", "clientes", "pais like ""*""&'" & Me.Elegir.Text & "'& ""*""")) = 0 Then
MsgBox "¡¡ Ande vas. Ese país no existe.!!", vbOKOnly + vbExclamation, "Busca otro"
Cancel = True
Else
Me.RecordSource = "select * from clientes where pais like ""*"" & '" & Me.Elegir.Text & "'&""*"""
End If
End Sub

Gracias.

Me funciona bien pero en el origen de registro he añadido el campo stock de una consulta

y cuando filtro el campo stock  se pone así 

En el código anterior no ocurre este problema al filtrar. Pero si se puede arreglar prefiero este código más fácil de entender para mí.

Como comprenderás no sé como está hecho el formulario, ni la utilidad de esa relación. Si tengo una tabla Productos

Y tengo un formulario( no te fijes en Proveedor porque aunque en esta tabla todos tienen su idproveedor, en la tabla Proveedores sólo tengo "dados" de alta a 2)

Cuando escribo una p, me reduce de 77 a 28 pero sí me muestra el stock( en el ejemplo lo llamo Existencias)

Y cuan do le añado una e

Me sigue mostrando las existencias.

Y el código es el que te puse.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas