Access - problemas con autonumericos

 
Vista:

problemas con autonumericos

Publicado por IVAN (10 intervenciones) el 10/10/2005 15:38:12
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 autonumeración de campo "IdPedido" al cambiar año fiscal

Publicado por Alejandro (4142 intervenciones) el 12/06/2023 18:08:41
Sí, Iván, sí es posible reiniciar la autonumeración del campo "IdPedido" cada vez que se cambie el año fiscal en Access. A continuación, te proporciono los pasos para lograrlo:

1. Abre la tabla que contiene el campo "IdPedido" en vista de diseño.

2. Selecciona el campo "IdPedido" y ve a la pestaña "General" en la barra de propiedades.

3. Asegúrate de que la propiedad "NuevoValor" esté establecida en "AutoNumber" y la propiedad "Incremento" esté establecida en "1".

4. Crea una consulta en Access para obtener el último número de pedido del año fiscal actual. Puedes usar la siguiente consulta SQL:

1
2
3
SELECT Max(IdPedido) AS UltimoPedido
FROM NombreTabla
WHERE IdAñofiscal = 'AñoFiscalActual'

Asegúrate de reemplazar "NombreTabla" con el nombre real de la tabla que contiene el campo "IdPedido" y "AñoFiscalActual" con el valor del año fiscal actual (por ejemplo, 'FY08').

5. Guarda la consulta y ciérrala.

6. Ve al formulario o evento donde se cambia el año fiscal y agrega el siguiente código VBA para reiniciar la autonumeración:

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
Private Sub cmbAñoFiscal_AfterUpdate()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim strSQL As String
    Dim ultimoPedido As Long
 
    Set db = CurrentDb()
 
    'Obtener el último número de pedido del año fiscal actual
    strSQL = "SELECT Max(IdPedido) AS UltimoPedido FROM NombreTabla WHERE IdAñofiscal = '" & Me.cmbAñoFiscal.Value & "'"
    Set rs = db.OpenRecordset(strSQL)
 
    If Not rs.EOF Then
        ultimoPedido = rs("UltimoPedido")
    End If
 
    rs.Close
 
    'Establecer el siguiente valor para la autonumeración
    strSQL = "ALTER TABLE NombreTabla ALTER COLUMN IdPedido COUNTER (" & ultimoPedido + 1 & ", 1)"
    db.Execute strSQL
 
    Set rs = Nothing
    Set db = Nothing
End Sub

Asegúrate de reemplazar "NombreTabla" con el nombre real de la tabla que contiene el campo "IdPedido" en el código VBA.

7. Guarda el formulario o evento y pruébalo cambiando el año fiscal. La autonumeración del campo "IdPedido" se reiniciará automáticamente al siguiente número disponible para el nuevo año fiscal.

Recuerda adaptar los nombres de las tablas y campos a tu base de datos real. Además, ten en cuenta que el código VBA asume que estás utilizando el control ComboBox "cmbAñoFiscal" para seleccionar el año fiscal.

Puedes guardar estas instrucciones en un archivo de texto o imprimirlo para tenerlo como referencia.
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