Problema con FindFirst, FindNext en access

Tengo un buscador con textbox y botón que funciona a la mitad porque necesito que haga las búsquedas siguiente, es decir: La búsqueda se genera a partir de un estatus que se le asigna al individuo, por ejemplo: POR CONFIRMAR, BUZON, NO CONTESTA. Pero estos estatus se repiten en varios registros de los clientes, entonces cuando realizo la búsqueda me posiciona en el primero que encuentra y de ahí ya no se mueve al siguiente, ejemplo:

Tengo 6 individuos con el mismo estatus POR CONFIRMAR, al buscar el estatus me lleva al primer individuo y cuando ingreso nuevamente la búsqueda POR CONFIRMAR para el siguiente registro me deja en el mismo en el que estoy posicionado, me queda claro que es porque no tiene una instrucción para salir de este y continuar al siguiente, ¿me pueden apoyar con ello?

El código que tengo es el siguiente:

Private Sub Buscar_Click()
Set Recordset = Me.Recordset.Clone
Recordset.FindNext "[txtmarcacion] = '" & Nz(Me![txtid_vdi_master], "") & "'"
If Recordset.NoMatch Then
Busca = txtmarcacion
Respuesta = MsgBox("Este registro no existe, verifique e inténtelo nuevamente", vbYesNo)
Else
txtid_vdi = Recordset.Fields("id_vdi")
txtnivel_validacion = Recordset.Fields("nivel_validacion")
txtprefijo = Recordset.Fields("prefijo")
txtbendera = Recordset.Fields("bandera")
txtapellido_paterno = Recordset.Fields("apellido_paterno")
txtapellido_materno = Recordset.Fields("apellido_materno")
txtnombre_1 = Recordset.Fields("nombre_1")
txtnombre_2 = Recordset.Fields("nombre_2")

End If

Ahora bien, me apoyaron en este foro para crear este buscador y me recomendaron utilizar FindFirst, FindNext etc. Voy a ser claro con esto: NO los se usar, no se como codificarlo y es por ello que necesito de su apoyo para terminar el código y que el buscador haga la búsqueda completa.

2 Respuestas

Respuesta
2

Suponiendo que la palabra que vas a usar como búsqueda la escribes o la eliges( da lo mismo) en un control llamado Elegir, en su evento Después de actualizar puedes poner

form.recordsource="select * from tablaorigendelformualrio where status='" & me.elegir & "'"

Así, si escribes(o eliges ) algo en el control elegir, el origen de registros del formulario serán aquellos registros de la tabla en que el campo Status contenga un valor igual al que has escrito(o elegido)

Respuesta
1

Utiliza el filtro a nivel de formulario, algo como:

Private Sub Buscar_Click()
  Me.Filter="txtmarcacion=" & Me.txtid_vdi_master
  Me.FilterON=True

End If

Adiciona un botón para quitar el filtro y adicionas:

En el evento Al hacer Clic:

Me.FilterOn=False

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas