Access - Id numérico + año

   
Vista:

Id numérico + año

Publicado por Claudia (56 intervenciones) el 08/10/2007 22:16:17
Hola a tod@s:

sé que en muchas ocasiones han tratado, más de algunos de ustedes, éste tema... pero aun con esos datos no he logrado mi objetivo.

se trata de lo siguiente:

tengo un formulario "FormAudit" que me permite ingresar nuevos datos, los cuales se almacenan en la tabla "Audit" cuya clave autonumérica es "Id_Audit". Éstos datos deben almacenarse en forma correlativa...el problema es que si se desiste de continuar con el registro se presiona el comando "Cancelar", y el registro se elimina y por ende la tabla pierde el sentido... me explico :

si tengo los registros 1, 2, 3, ... y elimino el registro2 quedaría: 1, 3, 4, ... y eso no es lo correcto.

por eso quiero crear dos nuevos campos que me permitan mantener la correlación. Uno llamado Numero y otro Año; por ejemplo:

Id_Audit = 1 Numero = 1 Año = 2007
Id_Audit = 2 Numero = 2 Año = 2007

si llego a eliminar el registro 2 quedaría:

Id_Audit = 1 Numero = 1 Año = 2007
Id_Audit = 3 Numero = 2 Año = 2007

no sé si me explico bien; al mismo tiempo debiera volver a 1 el campo Numero en el caso de comenzar un nuevo año.

He ocupado unas ayudas de mimenda que encontré dentro del foro, y de otras personas, pero solo logro guardar el Año....y el campo Numero no funciona...

Private Sub Form_Current()

If [Numero] < 1 Then

[Numero] = DMax("[Numero]", "Audit") + 1

End If

[Año] = Year(Date)

End Sub

Espero me puedan ayudar!!

De antemano gracias.
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

RE:Id numérico + año

Publicado por xavi (92 intervenciones) el 09/10/2007 09:41:48
Hola,

Has aprendido una de las cosas que nunca deben hacerse en Access: un autonumrico nunca debe servir para llevar una numeración correlativa de numeros. Simplemente sirve para asignar un número único a un registro.

Ahora tu problema. Entiendo que has creado 2 campos: Numero y Año
Entiendo que quieres llevar una numeración correlativa en cuanto a numeros, pero miduda es: ¿que quieres hacer cuando se borre un registro intermedio?

Para la simulación de autonumericos, puedes mirar esto:

http://accessbuho.mvps.org/ficheros/autonumerico.zip
http://www.telefonica.net/c/taller2000/simulaautonumericobis.zip

Un saludo

Xavi
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

RE:Id numérico + año

Publicado por Claudia (56 intervenciones) el 09/10/2007 15:11:46
Hola:

Gracias por tu ayuda, realmente me han servido los links. Sin embargo, quisiera saber si lo puedo complicar un poquito:

en una consulta dentro del foro encontré ésto:

Private Sub Form_Current()

[AñoActual] = Year(Date)

If [Numero] = Null Or [Numero] = 0 Then
[Numero] = DCount("[Numero]", "Auditoría", "[AñoActual] =" & [AñoActual]) + 1
End If

If [Numero] = 0 Then

[Numero] = DCount("[Numero]", "Auditoría") + 1

End If

End Sub

lo probé y funciona, pero sólo en el primer registro (estando la tabla vacía)... luego el campo Numero sólo toma el valor 0 (Cero).

lo que hace es reiniciar la cuenta cuando se cambia de año.

sabes si existe algun error en el código o si hay alguna página en la que salga algo mejor???

yo encontré una pero tampoco funciona (quizás estoy haciendo algo mal...)

gracias nuevamente

Saludos!
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