Acá le dejo otra función mucho más completa pero haciendo uso de SQL elaborada por Juan M Afán de Ribera, permite incrementar a partir de un valor y establecer los intervalos, además la tabla puede estar en otra base de datos.
' Código escrito originalmente por Juan M Afán de Ribera.
' Estás autorizado a utilizarlo dentro de una aplicación
' siempre que esta nota de autor permanezca inalterada.
' En el caso de querer publicarlo en una página Web,
' por favor, contactar con el autor en
'
' [email protected]
'
' Este código se brinda por cortesía de
' Juan M. Afán de Ribera
'
Function ResetNumber( _
TableName As String, _
FieldName As String, _
Optional FirstNum As Long = 1, _
Optional Interval As Long = 1, _
Optional DBPath As String) As Long
Dim db As Object 'DAO.Database
Dim SQL As String
SQL = "ALTER TABLE " & TableName _
& " ALTER COLUMN " & FieldName _
& " COUNTER(" & FirstNum & ", " & Interval & ")"
On Error GoTo err_ResetNumber
If DBPath = "" Then
Set db = CurrentDb
Else
Set db = DBEngine.OpenDatabase(DBPath)
End If
db.Execute SQL
ResetNumber = -1
exit_Function:
If Not db Is Nothing Then db.Close
Set db = Nothing
Exit Function
err_ResetNumber:
ResetNumber = Err.Number
Resume exit_Function
End Function
Ejemplos de llamada;
ResetNumber("Documentos","id", 1,1) -------> Inicia a partir de 1 e incrementa de a 1
ResetNumber("Documentos","id", 1,10) -------> Inicia a partir de 1 e incrementa de a 10
ResetNumber("Documentos","id", 15,5) -------> Inicia a partir de 5 e incrementa de a 1