Tengo un problema con una base de búsqueda en Access. No encuentro el error en el código de búsqueda (Es la 1ª vez que lo uso)

Como bien dice el titulo, soy nuevo en Access. Use una guía de un usuario para crear de 0 una base de consultas de empleados.

La idea principal es buscar una persona según su DNI o ID (Identificación interna del trabajo) y que me muestre todos los lugares donde esa persona trabajo en el año, pero me tira un error de compilación.

Dejo en ejemplo de lo que quiero hacer y el código. (Lista0 es el cuadro 1, Lista1 el cuadro 2, Lista3 el recuadro grande y la barra de búsqueda es Busca)

                        Alguien me podría ayudar? Gracias!

Option Compare Database
Private Sub Busca_AfterUpdate()
Select Case Me.Busqueda
'CONSULTA EVENTOS
Case Is = "2"
    If Me.Historico.Value = 0 Then
    Select Case Lista1
    Case Is = "FECHA"
    Me.Lista3.RowSource = "Select Eventos.FECHA, Eventos.EVENTO, Eventos.DNI, Eventos.CUIL, Eventos.PERSONAL, Eventos.ID, Eventos.IMPORTE, Eventos.LIQUIDACION FROM Eventos Where [Eventos].[FECHA] =  '*" & Busca.Text & "*' and ((([Eventos].[HISTORICO])=0)) order by [FECHA]ASC;"
    Case Is = "EVENTO"
    Me.Lista3.RowSource = "Select Eventos.FECHA, Eventos.EVENTO, Eventos.DNI, Eventos.CUIL, Eventos.PERSONAL, Eventos.ID, Eventos.IMPORTE, Eventos.LIQUIDACION FROM Eventos Where [Eventos].[EVENTO] = '*" & Busca.Text & "*' and ((([Eventos].[HISTORICO])=0)) order by [EVENTO]ASC;"
    Case Is = "DNI"
    Me.Lista3.RowSource = "Select Eventos.FECHA, Eventos.EVENTO, Eventos.DNI, Eventos.CUIL, Eventos.PERSONAL, Eventos.ID, Eventos.IMPORTE, Eventos.LIQUIDACION FROM Eventos Where [Eventos].[DNI] = '*" & Busca.Text & "*' and ((([Eventos].[HISTORICO])=0)) order by [DNI]ASC;"
    Case Is = "CUIL"
    Me.Lista3.RowSource = "Select Eventos.FECHA, Eventos.EVENTO, Eventos.DNI, Eventos.CUIL, Eventos.PERSONAL, Eventos.ID, Eventos.IMPORTE, Eventos.LIQUIDACION FROM Eventos Where [Eventos].[CUIL] = '*" & Busca.Text & "*' and ((([Eventos].[HISTORICO])=0)) order by [CUIL]ASC;"
    Case Is = "PERSONAL"
    Me.Lista3.RowSource = "Select Eventos.FECHA, Eventos.EVENTO, Eventos.DNI, Eventos.CUIL, Eventos.PERSONAL, Eventos.ID, Eventos.IMPORTE, Eventos.LIQUIDACION FROM Eventos Where [Eventos].[PERSONAL] = '*" & Busca.Text & "*' and ((([Eventos].[HISTORICO])=0)) order by [PERSONAL]ASC;"
    Case Is = "ID"
    Me.Lista3.RowSource = "Select Eventos.FECHA, Eventos.EVENTO, Eventos.DNI, Eventos.CUIL, Eventos.PERSONAL, Eventos.ID, Eventos.IMPORTE, Eventos.LIQUIDACION FROM Eventos Where [Eventos].[ID] = '*" & Busca.Text & "*' and ((([Eventos].[HISTORICO])=0)) order by [ID]ASC;"
    Case Is = "IMPORTE"
    Me.Lista3.RowSource = "Select Eventos.FECHA, Eventos.EVENTO, Eventos.DNI, Eventos.CUIL, Eventos.PERSONAL, Eventos.ID, Eventos.IMPORTE, Eventos.LIQUIDACION FROM Eventos Where [Eventos].[IMPORTE]like '*" & Busca.Text & "*' and ((([Eventos].[HISTORICO])=0)) order by [IMPORTE]ASC;"
    Case Is = "LIQUIDACION"
    Me.Lista3.RowSource = "Select Eventos.FECHA, Eventos.EVENTO, Eventos.DNI, Eventos.CUIL, Eventos.PERSONAL, Eventos.ID, Eventos.IMPORTE, Eventos.LIQUIDACION FROM Eventos Where [Eventos].[LIQUIDACION]like '*" & Busca.Text & "*' and ((([Eventos].[HISTORICO])=0)) order by [LIQUIDACION]ASC;"
End Sub
Private Sub Lista0_Click()
Me.Lista1.Visible = True
Select Case Me.Lista0
    Case Is = "Consulta Eventos"
    Me.Busca = "2"
    Me.Lista1.RowSource = "FECHA;EVENTO;DNI;CUIL;PERSONAL;ID;IMPORTE;LIQUIDACION"
    Me.Caption = "Buscar efectivo"
    Me.Lista3.ColumnCount = 9
    Me.Lista3.ColumnWidths = "0 cm;2,3 cm;5 cm;1,55 cm;1,80 cm;7 cm; 1,55 cm;1,55 cm; 2,3 cm;"
    Me.Lista3.RowSource = "SELECT Eventos.FECHA, Eventos.EVENTO, Eventos.DNI, Eventos.CUIL, Eventos.PERSONAL, Eventos.ID, Eventos.IMPORTE, Eventos.LIQUIDACION"
    If Me.Lista3.ListCount = 0 Then
    Me.Texto41 = "0"
    Else
    Me.Texto41 = Me.Lista3.ListCount - 1
    End If
End Sub
Private Sub Lista1_Click()
Me.Busca.Visible = True
Me.Busca = ""
Me.Busca.SetFocus
End Sub

2 Respuestas

Respuesta
1

Intenta lo siguiente:

 Me.Lista3.RowSource = "Select Eventos.FECHA, Eventos.EVENTO, Eventos.DNI, Eventos.CUIL, Eventos.PERSONAL, Eventos.ID, Eventos.IMPORTE, Eventos.LIQUIDACION FROM Eventos Where [Eventos].[IMPORTE]like '*" & Busca.Text & "*' and ((([Eventos].[HISTORICO])=0)) order by [IMPORTE]ASC;"
 me.lista3 = null

Intenta limpiar tu lista después de cada cada consulta.

Me dices que pasa

Antonio, gracias por tu respuesta.

Hice tal cual me dijiste, pero me sigue figurando un error como adjunto en la imagen. Me selecciona el Me.Text41 y en amarillo Private Sub Lista0_Click()

Antonio, perdón el Bump pero amplio algo.

Pude corregir unos errores, pero en la búsqueda me arroja un error, como que no sabe de que base agarrar la información. ¿Será por qué en el ejemplo que descargue tenía este código?

    If Me.Historico.Value = 0 Then

No se de donde sale el "historico" y como reemplazarlo.

Me puedes mandar la base para revisarlo

[email protected]

Respuesta
1

Voy a dar mi modesta opinión, pero anticipo que creo que no he entendido bien la pregunta.

Supongo que el cuadro de lista Buscar, tiene como origen de la fila, una lista de valores

"Clientes";"Eventos"

Y supongo que quieres que en función de que elijas uno u otro valor el cuadro de lista Seleccionar te presente unos valores. Si es eso, en el evento Después de actualizar del cuadro de lista Buscar puedes poner algo así como

Select Case Buscar

seleccionar.rowsourcetype="value list"
Case Is = "Por cliente"
Seleccionar.RowSource = ""
Seleccionar.AddItem "nombrecompañia"
Seleccionar.AddItem "Nombrecontacto"
Seleccionar.AddItem "Ciudad"
Case Is = "Eventos"
Seleccionar.RowSource = ""
Seleccionar.AddItem "Pais"
Seleccionar.AddItem "Yoquese"
Seleccionar.AddItem "No se nada"
End Select

Ahora supongamos que el cuadro de texto de abajo, donde vas a escribir algo se llama texto6 y que el cuadro grande en blanco es un subformulario. En el evento Al hacer clic del botón puedes poner algo así como

Select Case Seleccionar
Case Is = "pais"
Me.Clientes.Form.RecordSource = "select * from clientes where pais like ""*"" & '" & Me.Texto6 & "' & ""*"""
End Select

Así, si en en cuadro de lista has elegido país y en el cuadro de texto escribes por ejemplo para y pulsas el botón, el origen de registros del subformulario serán aquellos de la tabla Clientes cuyo país, tenga la cadena para, o sea esPAña, PAnamá, etc.

Como te decía no sé si es eso a lo que te refieres.

De todas formas, si quieres, repito, si quieres, mándame un mensaje a [email protected] y te mando un ejemplo, o si quieres mándame una copia vacía o con registros inventados de tu base y te preparo el formulario.

Si lo haces, en el asunto del mensaje pon tu alias Facundo, ya que si no sé quien me escribe ni los abro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas