Access - Control Para ordenar registros

 
Vista:

Control Para ordenar registros

Publicado por Jorge (6 intervenciones) el 07/07/2007 01:56:07
Nesecito utilizar algún control que me permita ordenar los registros de una tabla en forma manual algo así como cuando en Excel se corta una fila y se inserta entre otras según el orden que quiera el usuario, me gustaría un control como el que tiene la vista de diseño de las tablas donde uno puede tomar el campo con el Mouse y moverlo donde quiera y que mantenga la posición.

gracias por su 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 Alejandro

Control de reordenamiento manual de registros

Publicado por Alejandro (4142 intervenciones) el 15/08/2023 18:40:07
Lamentablemente, Microsoft Access no proporciona un control incorporado que permita el reordenamiento manual de registros de la misma manera en que se hace en Excel. Sin embargo, puedes lograr un efecto similar utilizando una combinación de controles y código VBA.

Aquí hay un enfoque básico que puedes seguir para implementar un control de reordenamiento manual de registros en Access:

1. Agregar un campo de ordenamiento:

En tu tabla, agrega un campo numérico que servirá para almacenar el orden deseado de los registros.

2. Diseñar un formulario:

Crea un formulario en Access que muestre los registros de la tabla. Puedes usar una lista continua o un subformulario para mostrar los registros. Asegúrate de incluir el campo de ordenamiento en el formulario, pero puedes ocultarlo si no deseas que los usuarios lo modifiquen directamente.

3. Agregar controles de reordenamiento:

Puedes agregar controles de botones (por ejemplo, flechas hacia arriba y hacia abajo) junto a cada registro en el formulario. Al hacer clic en estos botones, el usuario podrá cambiar el orden de los registros.

4. Implementar el código VBA:

Utiliza código VBA en los eventos de los botones para intercambiar los valores de ordenamiento entre los registros y actualizar la presentación en el formulario.

Por ejemplo, para mover un registro hacia arriba:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub btnMoverArriba_Click()
    If Me.CurrentRecord > 1 Then
        Dim currentOrder As Long
        Dim previousOrder As Long
        currentOrder = Me!Orden
        previousOrder = Me.RecordsetClone.Fields("Orden").Value
 
        Me.RecordsetClone.Edit
        Me.RecordsetClone.Fields("Orden").Value = previousOrder
        Me.RecordsetClone.Update
 
        Me.RecordsetClone.MovePrevious
        Me.RecordsetClone.Edit
        Me.RecordsetClone.Fields("Orden").Value = currentOrder
        Me.RecordsetClone.Update
 
        Me.Requery
    End If
End Sub

Similarmente, puedes implementar el código para mover un registro hacia abajo.

5. Personalizar la interfaz:

Mejora la experiencia del usuario agregando indicadores visuales, como cambiar el color de fondo del registro que se está moviendo.

Este enfoque requerirá cierto nivel de programación en VBA para lograr el efecto deseado. Aunque no es exactamente igual a la funcionalidad de arrastrar y soltar en Excel, puede proporcionar una solución de reordenamiento manual de registros en Access. Recuerda adaptar el código y la interfaz a tus necesidades específicas.
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