Qué otra forma puedo usar para evitar bloqueo en access cuando se presenta error 3052
El día de hoy se me presentó este aviso y bueno les dejo mi código para conocer si este me sirve o si lo puedo mejorar con otro para que no me vote ese error. Mil gracias.
Private Sub Form_Open(Cancel As Integer)
DAO.DBEngine.SetOption dbMaxLocksPerFile, 15000
Dim num As Long
Dim rst As DAO.Recordset
num = InputBox("Indique el número de consecutivo con el que empieza", vbInformation, "digite numero aqui")
If MsgBox("Esta correcto el número de consecutivo?", vbYesNo, TituloVt()) = vbYes Then
Set rst = Me.RecordsetClone
If rst.RecordCount = 0 Then GoTo Salida
With rst
.MoveFirst
Do Until .EOF
.Edit
.Fields("N_CONSECUTIVO").Value = num
.Update
num = num + 1
.MoveNext
Loop
End With
Me.Refresh
Salida:
rst.Close
Set rst = Nothing
Else
Exit Sub
End If
MsgBox "Fin del proceso", vbInformation, TituloVt()
End Sub
De hecho esta instrucción
DAO. DBEngine. SetOption dbMaxLocksPerFile, 15000
Se habla de que es conveniente solo manejarla en 9500 pero la verdad aqui ya no sé que hacer.
Gracias por su ayuda.
Lo otro este mismo proceso lo puedo manejar con
rst!Me.N_CONSECUTIVO.value = num
Es decir, ¿tomando en cuenta que en el formulario tengo ese campo activo?
Mil gracias por la ayuda. Y que gracias a ello aprenderé mucho más de alguno de ustedes.
Hola Sandra. Pero de todos modos si lo que estas haciendo es un consecutivo (que no usa el campo autonumérico) te estas complicando mucho, por que solo bastaría preguntar el numero mayor mediante la función Máx(Campo, Tabla, Filtro) y sumarle 1. Si no es eso, no tengas en cuenta el comentario. Saludo - Camilo Calle
función Dmáx() - Camilo Calle