Recalcular subformulario automáticamente en ACCESS 2003

Me estoy iniciando en access 2003 y tengo una consulta que no he conseguido resolver. A ver si me se explicar que soy novato.

Como se que en ACCESS 2003, desde un combobox no puedo hacer aparecer los resultados de la lista desplegable a medida que tecleo CUALQUIER CADENA DE TEXTO comprendida dentro de los registros de la tabla (no desde el principio de la cadena sino cualquiera), lo que he hecho es:

Un formulario que contiene:

-Un cuadro de texto donde introduzco la cadena de caracteres.

-Un subformulario con un formulario de consulta donde muestra la lista de registros que contienen esa cadena.

Mi problema:

A medida que escribo en el textbox el subformulario no se actualiza/recalcula (o lo que sea) automáticamente.

He probado:

1-"Me.Recalc" en el evento "on change" del textbox pero actualiza todo el formulario (y subform) y no me deja escribir ya que a cada pulsación se actualiza también el textbox.

2-"Me!SUBFORMULARIO.Requery" en el evento "After Update" del textbox pero no se actualiza a medida que voy tecleando sino cuando pulso "ENTER".

Llevo buscando horas en la red y no encuentro la solución.

1 respuesta

Respuesta
1

Después de pelearme un buen rato con access, he encontrado una solución a tu problema. El código, que colocarás en el Evento Al cambiar (on change) del textbox, será algo parecido a este:

Private Sub txtBox_Change()

Me.Refresh
Me.txtBox.SelStart = Len(Nz(Me.txtBox.Value, 1)) + 1
Dim miSQL As String
If Me.txtBox= "" Or IsNull(Me.txtBox) Then
miSQL = "SELECT campo1,campo2... FROM tabla"
Else
miSQL = "SELECT campo1,campo2... FROM tabla WHERE (((Tabla.campoAFiltrar) Like '*" & Me.txtBox& "*'))"
End If
Me.Subformulario.Form.RecordSource = miSQL
Me.Subformulario.Form.Requery

End Sub

La estructura de la SQL, la puedes quitar de la consulta que ya tienes hecha, añadiéndole a la que va después del Else el cambo a filtrar. Evidentemente, tendrás que cambiar lo que está en negrita por los nombres de los campos, tablas y subformulario que tu tengas.

Como único "inconveniente" (para los muy quisquillosos) es que se ve un ligero parpadeo en el txtBox...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas