Access - Filtrar registros

 
Vista:

Filtrar registros

Publicado por Juan (5 intervenciones) el 11/09/2007 15:16:16
Hola. Tengo una tabla en Acces en la cual una de las filas es el numero de documento de la persona. Los primeros registros tienen ese campo en blanco y despues empiezan los registros a tener completado el numero de documento. Bajando llega un momento en que un registro tiene en blanco el doumento o texto escrito ahi, y siguiendo para abajo vuelven a aparecer numeros de documento. Lo que yo quiero es poder quedarme en una tabla solamente con los registros que estan en el primer grupo, es decir desde el primer registro con numero de documento hasta que se llega a la celda en blanco o texto. La idea es poder hacerlo a traves de una macro o con VBA y no manualmente.
Para que se entienda mejor, en la misma tabla tengo primero los datos de los Envios que me llegan y abajo viene un titulo de Reenvios y aparecen los registros reenviados. Solamente quiero quedarme con los Enviados.
Muchas gracias!
Saludos
Juan
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

Filtrar registros de acuerdo a grupos usando VBA

Publicado por Alejandro (4142 intervenciones) el 18/08/2023 19:53:01
Para filtrar los registros de acuerdo a grupos en una tabla de Access utilizando una macro o VBA, puedes seguir estos pasos:

1. Usando una macro:

Las macros en Access pueden realizar tareas automatizadas, pero pueden tener algunas limitaciones en términos de lógica y condiciones complejas. Sin embargo, si la lógica de filtrado es relativamente simple, puedes seguir estos pasos:

a. Abre la base de datos de Access.

b. Ve a la pestaña "Crear" en la cinta de opciones y selecciona "Macro".

c. Agrega la acción "AbrirTabla" y selecciona la tabla que deseas filtrar.

d. Agrega la acción "IrAlRegistro" y elige "Primer Registro" para moverte al primer registro de la tabla.

e. Agrega la acción "FiltrarCampo" y selecciona el campo de número de documento.

f. Agrega la acción "CompararTexto" y selecciona "Es igual a" como operador. Deja el valor en blanco.

g. Agrega la acción "DetenerMacro" para finalizar la macro.

h. Guarda y cierra la macro.

i. Puedes ejecutar la macro haciendo clic en el botón "Ejecutar" en la pestaña "Diseño" de la macro.

2. Usando VBA:

Si la lógica de filtrado es más compleja, es mejor utilizar VBA para lograrlo. Aquí tienes un ejemplo de código VBA que puedes usar en el módulo de la base de datos:

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
Sub FiltrarRegistros()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim strCampoDocumento As String
    Dim strValorAnterior As String
 
    Set db = CurrentDb
    Set rs = db.OpenRecordset("NombreDeTuTabla")
 
    strCampoDocumento = "CampoDocumento" ' Cambia esto al nombre de tu campo
 
    strValorAnterior = ""
 
    Do While Not rs.EOF
        If Nz(rs(strCampoDocumento), "") = "" Then
            Exit Do
        End If
 
        If rs(strCampoDocumento) <> strValorAnterior Then
            rs.MoveNext
            Exit Do
        End If
 
        strValorAnterior = rs(strCampoDocumento)
        rs.MoveNext
    Loop
 
    rs.MoveLast
    rs.Delete
 
    rs.Close
    Set rs = Nothing
End Sub

Asegúrate de cambiar "NombreDeTuTabla" y "CampoDocumento" por los nombres reales de tu tabla y campo. Este código moverá el cursor al primer registro del siguiente grupo y eliminará los registros restantes.

Recuerda siempre hacer una copia de seguridad antes de realizar cambios importantes en la base de datos y ejecutar las macros o código VBA en una versión de prueba antes de aplicarlos en la base de datos en producción.
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