Realizar búsqueda en formulario filtrando una consulta

Estoy intentando a través de un botón de comando la búsqueda de una consulta que lleva los datos de los trabajadores como el formulario principal y las horas trabajadas con horas en el subformulario

Actualmente tenía esto, si es cierto que antes estaba en access 2003, pero en 2007 no funciona y no encuentro el porqué.

rivate Sub Comando246_Click()
On Error GoTo Err_Comando246_Click

Dim stDocName As String

stDocName = "Busca_trabajadores_alta"
DoCmd.RunMacro stDocName

Exit_Comando246_Click:
Exit Sub

Err_Comando246_Click:
MsgBox Err.Description
Resume Exit_Comando246_Click
End Sub

Y la macro

Abrir formulario

Nombre del Formulario: Empleados

Vista: Formulario

Nombre del filtro: Busca_Trabajo

Esto me permite aplicar el filtro en en el formulario que trabajo y al pulsar el botón de comando filtra la consulta seleccionando y así poder modificar los campos del subformulario.

El subformulario de búsqueda esta relacionado a través de IdEmpleado, en ambas tablas, TRABAJADORES y HORAS_TRABAJADAS

1 respuesta

Respuesta
2

No me gustan las macros, no me gustan los filtros, pero juraría que te falta decirle lo que debe hacer el filtro.

Vamos a suponer que te debe buscar un trabajador. Puedes poner, en vez del botón un combinado, poniendo, por ejemplo, en sus propiedades-Origen de la fila

Select idempleado, nombreempleado from Empleados order by nombreempleado;

En esas misma propiedades-Formato_numero de columna le pones 2 y en Ancho de columnas 0;6

Luego en sus propiedades-Eventos.Después de actualizar, crea un procedimiento de evento y entre Private Sub y End Sub poner

Docmd.openform"empleados",,,"nombreempleado like "' & me.nombredelcombo & "'",,acdialog

Así, en el momento que elijas un nombre de un empleado, se abre el formulario Empleados en vista diálogo en ese registro, Y como formulario y subformulario están relacionados por Idempleado...

Hola, muchas gracias por contestar.

Esa opción que me propones me parece bastante bien, el problema es que tengo 50 o 60 empleados y tendría que seguir buscándolos 1 a 1 para poner en el subformulario que trabajan o libran en el día actual. Y eso me lleva mucho tiempo. 

Ya se que no te gustan los filtros ni las macros, pero como seleccionó 50  o 60 registros  de unos 15000 que tengo en el formulario que trabajo para con los botones siguiente y anterior ir añadiendo en el subformulario si el empleado me trabaja o libra. 

Muchas gracias

Un saludo ¹

Puedes usar los comodines. Como no sé ni la estructura de la tabla ni de los formularios tengo que suponer. Si tengo una tabla Clientes con diferentes países y con ella hago un formulario donde le pongo un botón.

Cuando pulso el botón

Escribo lem y pulso Aceptar

Es decir me busca aquellos registros que tengan la cadena lem en el campo Pais

El código del botón es

Private Sub Comando11_Click()
Me.RecordSource = "select * from clientes where pais like ""*""&[Esciba una cadena del nombre del pais] & ""*"""
End Sub

Y puedes encadenar los criterios que quieras, por ejemplo

me.recordsource="select * from clientes where pais=...... and trabajo like ""camarero"" and pelo=""rubio"" or pelo=""negro"" and...... Así hasta 99 condiciones AND o OR. Mira si puedes "filtrar"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas