¿Buscador automático en access a dos columnas?

Analizando: necesito dos columnas en el listado y he modificado las propiedades así: Visible NO, Columnas 2 y Anchos 4 y 15. Sin embargo creo que el error está en el código:

Private Sub Form_Timer()
    Me.Lista2.Visible = False
End Sub
Private Sub Form_Load()
    DoCmd.GoToRecord , , acNewRec
    Me.TxtBuscar.SetFocus 'Esto lleva el foco al control TxtBuscar.
End Sub
Private Sub TxtBuscar_GotFocus()
    On Error Resume Next
        If Me.TxtBuscar.Text = "(Escriba un tema a buscar)" Then
        Me.TxtBuscar.Text = ""
        End If
End Sub
Private Sub TxtBuscar_LostFocus()
    On Error Resume Next
        If Me.TxtBuscar.Text = "" Then
        Me.TxtBuscar.Text = "(Escriba un tema a buscar)"
        End If
End Sub
Private Sub TxtBuscar_Change()
    Lista2.RowSource = "SELECT Temarios, CodLib FROM 03INDICE_TEMATICO WHERE Temarios LIKE '*" & TxtBuscar.Text & "*'"
    Lista2.Requery
End Sub
Private Sub Lista2_DblClick(Cancel As Integer)
    Me.TxtBuscar.Text = Me.Lista2.Column(1)
    Me.TxtBuscar.SetFocus
    Me.Lista2.Visible = False
End Sub

1 Respuesta

Respuesta
2

No dices qué problema tienes, con lo que es difícil poder orientarte, pero así, a bote pronto, me parece que está en Me. Lista2. Column(1), que debiera ser Me. Lista2. Column(0), ya que por defecto, Access empieza los índices por 0 y no por 1, y por tanto, la primera columna (la que corresponde a Temarios), tiene el índice 0 y la segunda (la correspondiente a CodLib) el índice 1.

Private Sub Lista2_DblClick(Cancel As Integer)
    Me.TxtBuscar.Text = Me.Lista2.Column(0)
    Me.TxtBuscar.SetFocus
    Me.Lista2.Visible = False
End Sub

A ver si acerté...

Disculpa , es cierto olvidé indicar que estoy como al principio el cuadro de lista no me muestra absolutamente nada, serán las comillas o la condición Value o Text debido a que agregué otra columna, aunque el CodLib está configurado en la tabla como Texto por ser un código alfanumérico.  Por favor si intuyes algo más que pueda estar sucediendo detrás y que deba corregir, te lo agradeceré muchísimo. Saludos!!!

He rehecho de cero tu formulario, intentando que quede como creo que pretendes. Aparentemente funciona bien. Te dejo aquí el archivo.

Para asignar un valor a un cuadro de texto, tienes que usar Value, no Text. Para recuperar el valor del cuadro de texto, mientras no se guarde el registro, se usa Text y en otro caso Value.

El cuadro de lista original ya tenía dos columnas, aunque luego la dejabas en una al aplicar el filtro con el Private Sub TxtBuscar_Change()

¡Gracias! 

Si el usuario travieso quiere forzar a buscar un tema que no se encuentra "Disponible" pregunto, podría cubrirse esa parte con el tratamiento de error:

On error GoTo err_TemaErroneo
.....
exit_TemaErroneo
Exit Sub 
err_TemaErroneo
MsgBox Err.Description
Resume exit_TemaErroneo

Saludos!!! y reitero mi más sincero agradecimiento por tu valiosa ayuda. 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas