Access - Mostrar los números disponibles del campo ID

 
Vista:
sin imagen de perfil
Val: 5
Ha aumentado su posición en 3 puestos en Access (en relación al último mes)
Gráfica de Access

Mostrar los números disponibles del campo ID

Publicado por Marta (2 intervenciones) el 08/10/2020 21:18:30
¡Hola a todos!

A ver si me podéis ayudar ya que he dejado para el final lo que me parecía más sencillo y resulta que es lo que más dolores de cabeza me está dando.

Pretendo que cuando creo un nuevo registro, en blanco, desde un formulario, al hacer click en el cuadro de texto donde va el ID del registro, me aparezca al lado una lista con los números disponibles para asignar a la ID de ese registro y a ser posible, poder hacer click sobre uno de esos números y que pase el número al cuadro de texto para así no tener que escribirlo.

La idea en mi cabeza sería algo así como obtener de la tabla todos los números guardados en el campo ID, ordenarlos de manera ascendente y comprobar que sean todos consecutivos y los números faltantes, que sean los que me muestre en ese listado (a ser posible seleccionable).

No me importa que al guardar los registros el "5" esté en la posición "12", pero si el reutilizar los números IDs de los registros borrados y seguir manteniendo la referencia de cada registro a su ID (no cambiar la ID a ningún registro de los que aun están).

Tabla → Tabla_Observaciones
Campo de la Tabla → ID_Observacion

Formulario → Formulario_Observaciones
Cuadro de Texto → Tx_ID_Observacion


Espero haber sabido expresar bien lo que tengo en la cabeza...

¡

Muchas gracias


a todos!

# Mientras más aprendo, más convencida de lo poquito que se.
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
sin imagen de perfil
Val: 5
Ha aumentado su posición en 3 puestos en Access (en relación al último mes)
Gráfica de Access

Mostrar los números disponibles del campo ID

Publicado por Marta (2 intervenciones) el 13/10/2020 11:44:14
Aunque aun no he limpiado y compactado el código, he conseguido lo que pretendía... aunque cuando se me pase el dolor de cabeza imagino que podré hacerlo todo mucho más eficaz y sencillo.

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
Function RegLibres()
Dim RegMasAlto As Variant
Dim IDReg As Variant
Dim Contador As Variant
Contador = 1
RegMasAlto = DMax("[Id_Observacion]", "Tabla_Observaciones")
            ' Limpia el ListBox
            Dim i As Long
            For i = Me.Lista_RegSinNum.ListCount - 1 To 0 Step -1
                Me.Lista_RegSinNum.RemoveItem i
            Next i
            While Contador < RegMasAlto
            IDReg = DLookup("[ID_Observacion]", "Tabla_Observaciones", "[ID_Observacion] = " & Contador & "")
                If (IDReg = Contador) Then
                     Contador = Contador + 1
                ElseIf IsNull(IDReg) Then
                     Me.Lista_RegSinNum.AddItem Contador
                     Contador = Contador + 1
                ElseIf (IDReg <> Contador Or IDReg = "" ) Then
                     Me.Lista_RegSinNum.AddItem Contador
                    Contador = Contador + 1
                Else
                   Contador = RegMasAlto
                End If
            Wend
            Me.Lista_RegSinNum.AddItem (RegMasAlto + 1) & " y + ..."
End Function
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