Access - Problemas con autonumericos!! AYUDADME por favor!!

 
Vista:

Problemas con autonumericos!! AYUDADME por favor!!

Publicado por Ivan (10 intervenciones) el 05/10/2005 17:13:17
Hola, estoy haciendo una base de datos de "pedidos" que tiene un campo que es Idpedido (AUTONUMERICO) y existe otro campo que es IdAñofiscal (FY06, FY07, FY08...) Lo que quiero hacer es que cada vez que se cambie el año fiscal el autonumerico idpedido empiece desde 1. ¿se puede hacer?. si sabeis como mandamelo por correo porfa
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

Reiniciar el contador de IdPedido por año fiscal

Publicado por Alejandro (4142 intervenciones) el 10/06/2023 00:40:20
En Access, el campo autonumérico se genera automáticamente y no puede ser modificado directamente. Sin embargo, puedes lograr tu objetivo utilizando un enfoque diferente.

Puedes crear una tabla adicional llamada "ContadorPedidos" con dos campos: "IdAñofiscal" y "Contador". Este último campo se utilizará para almacenar el número de pedido actual para cada año fiscal.

Luego, en tu formulario de pedidos, puedes agregar un evento al cargar el formulario para verificar si el año fiscal actual ya existe en la tabla "ContadorPedidos". Si no existe, puedes insertar un nuevo registro con el año fiscal actual y un contador inicial de 1. Si el año fiscal ya existe, puedes recuperar el valor actual del contador y asignarlo al campo "Idpedido" del nuevo registro.

Aquí tienes un ejemplo de código VBA para el evento "Al cargar" del formulario de pedidos:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub Form_Load()
    Dim strAñofiscal As String
    Dim strSQL As String
    Dim lngContador As Long
 
    ' Obtener el año fiscal actual (por ejemplo, FY06)
    strAñofiscal = "FY" & Right(Year(Date), 2)
 
    ' Verificar si el año fiscal actual existe en la tabla "ContadorPedidos"
    strSQL = "SELECT Contador FROM ContadorPedidos WHERE IdAñofiscal = '" & strAñofiscal & "'"
    lngContador = Nz(DLookup("Contador", "ContadorPedidos", "IdAñofiscal = '" & strAñofiscal & "'"), 0)
 
    ' Si el año fiscal no existe, insertar un nuevo registro con contador inicial de 1
    If lngContador = 0 Then
        strSQL = "INSERT INTO ContadorPedidos (IdAñofiscal, Contador) VALUES ('" & strAñofiscal & "', 1)"
        CurrentDb.Execute strSQL
    End If
 
    ' Obtener el valor actual del contador para el año fiscal actual
    lngContador = DLookup("Contador", "ContadorPedidos", "IdAñofiscal = '" & strAñofiscal & "'")
 
    ' Asignar el valor del contador al campo "Idpedido" del nuevo registro
    Me.Idpedido.Value = lngContador
End Sub

Con este código, cada vez que se cargue el formulario de pedidos, verificará si el año fiscal actual ya existe en la tabla "ContadorPedidos". Si no existe, creará un nuevo registro con un contador inicial de 1. Luego asignará el valor del contador al campo "Idpedido" del nuevo registro.

Espero que esta solución te ayude a lograr el resultado que deseas.
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