Código de mi formulario

Tengo un formulario con un cuadro de lista en el que selecciono el registro que quiero que me muestre y lo muestra. Hasta ahí todo bien. El problema es que la tabla de donde se cogen los datos tiene una PORQUE compuesta por 3 campos y al buscar solamente por un campo siempre me muestra el mismo registro.
El código que uso es el siguiente:
' Buscar el registro que coincida con el control.
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.Find "[ano] = " & Str(Nz(Me![Listafechas], 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
Pero el ano(año) puede estar repetido, ya que la PORQUE esta compuesta por año al que pertenecen las vacaciones, la fecha de inicio y la fecha de fin del periodo vacacional.
Lo que quiero es que me muestre el registro que coincida con el año, la fecha de inicio y la de fin.

1 respuesta

Respuesta
1
La primera opción es usar un campo auxiliar tanto en la consulta del formulario como en el de la lista, de esta manera:
Select pk1, pk2, pk3, (pk1 & pk2 & pk3) as Aux from....
Este campo aux debe usarse en el find, lo malo es que en tu lista tendrás varios años repedidos...
Para la segunda opción, supongo que ademas de las lista con los años tienes otros campos o listas con las otras llaves, por lo que se debe usar una criterio compuesto para la búsqueda, lo malo es el método Find (en ADO) no sirve con este tipo de criterios pero puedes usar FILTER
rs.filter "ano=" & lista1 & " and " & fec_ini =#" & llave2 & "# and fec_fin=#" & llave3 & "#"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas