Access - Pasar al siguiente registro

 
Vista:

Pasar al siguiente registro

Publicado por yanira (140 intervenciones) el 15/11/2006 21:14:58
Tengo una funcion que me evalua el cargue o no de una tabla en excel.

La funcion es de tipo boolean y cuando el valor es true no alamcena el registro, tiene una condicion EOF para que realice el ciclo, como hago para que cuando sea true avance al siguiente registro de la tabla.
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 Alejandro

Avanzar al siguiente registro al evaluar el cargue en una función

Publicado por Alejandro (4142 intervenciones) el 28/07/2023 17:07:12
Para avanzar al siguiente registro en la tabla cuando la función evalúa que no debe almacenar el registro (cuando el valor es True), puedes utilizar el método `MoveNext` del objeto Recordset de DAO para mover el puntero al siguiente registro en la tabla.

Supongamos que tienes una función llamada `EvaluarCargue` que realiza la evaluación y devuelve un valor Booleano. Puedes utilizar un bucle `Do While` para recorrer todos los registros y avanzar al siguiente registro cuando la función devuelve True. Aquí tienes un ejemplo de cómo hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Function EvaluarCargue() As Boolean
    ' Aquí colocas tu lógica de evaluación
    ' Si la condición para no almacenar el registro es True, devuelve True
    ' Si la condición para almacenar el registro es False, devuelve False
    ' Por ejemplo:
    ' If alguna_condicion_para_no_almacenar Then
    '     EvaluarCargue = True
    ' Else
    '     EvaluarCargue = False
    ' End If
End Function
 
Sub ProcesarTabla()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
 
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("NombreTabla")
 
    Do While Not rs.EOF
        If EvaluarCargue() Then
            ' Si la función devuelve True, avanzar al siguiente registro
            rs.MoveNext
        Else
            ' Si la función devuelve False, almacenar el registro o realizar alguna otra acción
            ' Por ejemplo:
            ' rs.Edit
            ' rs!Campo = nuevo_valor
            ' rs.Update
            ' O cualquier otra acción que necesites hacer con el registro
            ' ...
 
            ' Avanzar al siguiente registro
            rs.MoveNext
        End If
    Loop
 
    rs.Close
    Set rs = Nothing
    Set db = Nothing
End Sub

En este ejemplo, la función `EvaluarCargue` es la que realiza la evaluación para determinar si el registro debe almacenarse o no. Si la función devuelve True, el puntero del objeto Recordset avanza al siguiente registro utilizando `rs.MoveNext`. Si la función devuelve False, se realiza alguna acción con el registro (como almacenarlo o actualizarlo), y luego también se avanza al siguiente registro.

Espero que esta solución te sea útil para avanzar al siguiente registro al evaluar el cargue en una función en Access. ¡Buena suerte!
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