Por necesidades "x" se requiere introducir un registro en una determinada posición de una tabla con un determinado valor en el campo autonumérico. No existe una forma sencilla de hacerlo así que debemos tirar de astucia.
Happy nos enseña un par de funciones que, bien colocadas en otro procedimiento, pueden obtener el resultado esperado.
Yo creo que hay que hacerlo en 3 pasos:
GetSeed para saber el próximo autonumérico (y guardarlo para el paso 3)
SetSeed para establecer el siguiente registro
(insertar el registro)
SetSeed con el valor guardado en paso 1
Obtener el siguiente autonumérico
Public Function GetSeed(Tabla As String, Campo As String) As Long
Dim cat As Object
On Error Resume Next
Set cat = CreateObject("ADOX.Catalog")
' para otra base de datos externa a la actual
' sustituir CurrentProject.Connection por objecto ADODB.Connection ADODB
' conectado a la base externa
cat.ActiveConnection = CurrentProject.Connection
GetSeed = cat.Tables(Tabla).columns(Campo).Properties("Seed")
Set cat = Nothing
On Error GoTo 0
End Function
Establecer el siguiente autonumérico
Public Function SetSeed(Tabla As String, _
Campo As String, _
SiguienteNumero As Long, _
Optional Intervalo As Long) As Boolean
Dim cat As Object
On Error Resume Next
Set cat = CreateObject("ADOX.Catalog")
' para otra base de datos externa a la actual
' sustituir CurrentProject.Connection por objecto ADODB.Connection ADODB
' conectado a la base externa
cat.ActiveConnection = CurrentProject.Connection
cat.Tables(Tabla).columns(Campo).Properties("Seed") = SiguienteNumero
If Intervalo <> 0 Then
cat.Tables(Tabla).columns(Campo).Properties("Interval") = Intervalo
End If
Set cat = Nothing
On Error GoTo 0
End Function