Access - Autonumérico

 
Vista:

Autonumérico

Publicado por Carlos (1 intervención) el 26/07/2007 19:04:10
Un campo de tipo autonumérico puede ser reiniciado?
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:Autonumérico

Publicado por Aldeano (25 intervenciones) el 27/07/2007 10:40:03
La manera de reiniciarlo que yo uso es eliminar el campo guardar la tabla y volver a crearlo. no se si se podra hacer de otra manera
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:Autonumérico

Publicado por 2pl2pl (53 intervenciones) el 27/07/2007 19:22:03
He aqui una función que la inserto tal como la puso el autor.

La función ResetNumber reinicializa un campo autonumérico, con opción a empezar a numerar en un número e intervalo concretos, tanto si el campo reside en una tabla de la base de datos actual como si reside en una tabla de otra base de datos
Debo puntualizar que el propósito de los campos autonuméricos es para diferenciar de manera única a cada uno de los registros de una tabla. Para ello, el campo autonumérico debería tener la casilla "Indexado" con el valor "Sí(Sin duplicados)".

Muchas veces los usuarios piensan que, tal vez por su nombre (Autonumérico), estos campos tienen como finalidad hacer las veces de campo contador. Pero aunque pueda parecer lo contrario, ese no es su cometido y el hecho de usarlos de esa manera traerá bastantes dolores de cabeza a quien lo intente. Si se quiere un campo contador, podeis buscar a pie de página, en la sección "Temas relacionados" para encontrar alternativas a los campos autonuméricos.

TableName Requerido. Nombre de la tabla que contiene el campo autonumérico
FieldName Requerido. Nombre del campo autonumérico
FirstNum Opcional. Número por el que empezará a contar el autonumérico después de ser reinicializado
Interval Opcional. Intervalo entre los números generados por el autonumérico
DBPath Opcional. Ruta y nombre de la base de datos donde reside el campo autonumérico. Si se omite este argumento o está vacío (""), la función buscará en la base de datos actual
Ejemplo de uso
Dim ret As Long
ret = ResetNumber("MiTabla", "Id", 1000, 1, "C:\MiBd.mdb")
If ret = -1 Then
MsgBox "El campo se reinicializó con éxito"
Else
MsgBox "Se ha producido el error: " & ret
End If
' ResetNumber
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
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