Numero consecutivo en microsoft access

Como puedo colocar un numero consecutivo sin ocupar el tipo de dato autonumérico.

2 Respuestas

Respuesta
1
En este caso necesitas programarlo, puedes hacer una pequeña rutina que te regrese el último número del campo. En Visual Basic utilizando ADO seria algo como:
Function DameUltimoRegistro() as Long
dim cn as Connection
dim rs as Recordset
Cn. Open "MIBD" 'Usando ODBC pero puedes cambiralo por el acceso que necesites
rs. Open "SELECT micamponumerico FROM TABLA ORDER BY micamponumerico DESC", cn
DameUltimoRegistro = rs!micamponumerico
Rs. Close
Cn. Close
End Function
Entonces ya que tienes el último número de tu campo solamente le sumas 1 y ya lo utilizas agregándolo a la lista de campos cuando hagas tu proxímo nuevo registro.
Saludos.
NOTA. Aquí hace falta agregar ciertas cosas como saber si la tabla no tiene registros, pero bueno, eso pasa a ser secundario.
Respuesta
1
Supongamos que tienes una tabla denominada 'Factura'. Esta tabla tiene, entre otros campos, un campo denominado 'IdFactura' (que es de tipo numérico). Supongamos también que lo que yo deseo es conocer el número consecutivo de factura. Para ello podría hacer lo siguiente:
Dim varMaxFact As Variant
varMaxFact = DMax("[IdFactura]","Factura")
varMaxFact = varMaxFact + 1
... y así tendremos en la variable 'varMaxFact' el número consecutivo de factura.
Tu respuesta me parece muy acertada, y te agradezco la pronta respuesta, pero no he podido pegra la variable dentro del formulario, es decir, cuando agrego un registro como le indico que tome como autovalor el resultado de de mi variable, de antemano nuevamente gracias
Quizás el sitio más idóneo para poner el código es en el evento 'Form_BeforeInsert' (que se produce antes de insertar un nuevo registro). Entonces el código que te mandé quedaría como sigue:
Private Sub Form_BeforeInsert(Cancel As Integer)
Dim varMaxFact As Variant
varMaxFact = DMax("[IdFactura]","Factura")
varMaxFact = varMaxFact + 1
RecordsetClone.Fields("IdFact") = varMaxFact
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas