Access - Recorrer registros de fomulario hasta encontrar un textbox con texto

 
Vista:
Imágen de perfil de Juan
Val: 414
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Recorrer registros de fomulario hasta encontrar un textbox con texto

Publicado por Juan (150 intervenciones) el 19/02/2019 12:26:35
Hola a todos,

Le estoy dando vueltas pero no doy con la tecla.

En un formulario, tengo un textbox que puede estar con texto o vacío. Mi intención es con un botón desplazarme con un solo clic por los registros del formulario hasta el siguiente registro en que ese Textbox contenga algún texto.

Con esta base he conseguido que vaya recorriéndolos hasta el final:

1
2
3
4
5
6
7
8
9
10
11
Set Reg = Me.Recordset
 
    DoCmd.GoToRecord , , acFirst
 
    While Not Reg.EOF
    Reg.MoveNext
 
    Wend
 
 
End Sub

Necesitaría saber dónde puedo intercalar la orden de que si el Textbox1 contiene texto, pare.

Gracias por vuestra ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Norberto
Val: 1.094
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Recorrer registros de fomulario hasta encontrar un textbox con texto

Publicado por Norberto (753 intervenciones) el 19/02/2019 12:54:05
Hola:

Entiendo que el cuadro de texto tiene como origen del control algún campo de la tabla o consulta. Prueba este código.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub cmdRecorrer_Click()
    Dim Rst As DAO.Recordset            'Definimos la variable para el recordset
    Set Rst = Me.RecordsetClone         'Abrimos el clon del recordset del formulario
 
    'Situamos Rst en el registro actual del formulario
    Rst.FindFirst "IdRegistro = " & Me.IdRegistro 'IdRegistro será la clave principal del recordset del formulario
 
    Do While Not Rst.EOF                'Mientras queden registros
        Rst.MoveNext                    'Vamos al siguiente registro
        If Not IsNull(Rst!Campo) Then   'El campo que de origen al cuadro de texto
            Exit Do
        End
    Loop
 
    If Not Rst.EOF Then             'Si el campo no está vacío
        Me.Bookmark = Rst.Bookmark  'Situamos el fomulario en dicho registro
    Else
        Beep                        'Emitimos un pitido
    End If
 
End Sub

Un saludo,

Norberto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Juan
Val: 414
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Recorrer registros de fomulario hasta encontrar un textbox con texto

Publicado por Juan (150 intervenciones) el 19/02/2019 13:27:57
Hola gracias por la respuesta, lo he probado y me da:

Error de compilación: Loop sin Do.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Norberto
Val: 1.094
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Recorrer registros de fomulario hasta encontrar un textbox con texto

Publicado por Norberto (753 intervenciones) el 19/02/2019 14:15:21
Hola de nuevo:

Línea 12: End If

Un saludo,

Norberto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Juan
Val: 414
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Recorrer registros de fomulario hasta encontrar un textbox con texto

Publicado por Juan (150 intervenciones) el 19/02/2019 14:19:59
Perfecto, funciona.

Gracias.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar