Problemas en bd access

Te explico mi problema:
Tengo una bd con varias tablas, otra con los formularios e informes que trabaja con las tablas de la primera.
En el formulario principal de entrada de datos tengo un campo numérico que se incrementa en cada entrada con:
Private Sub Form_Current()
Me.numero.DefaultValue = Nz(DLast("numero", "principal")) + 1
End Sub
Bueno, pues la aplicación me funciona perfectamente hasta que de vez en cuando (cada diez o quince días), se me bloquea y deja de incrementar el número.
Se me viene solucionando borrando el último registro introduccido.
¿Se te ocurre algo? ¿Qué puede pasar?
Otro tema ¿existe límite en el numero de registros en una bd de access?
Por cierto trabajo con windows y access 2000.
Respuesta
1
Te sugiero dos soluciones
1) Pulir al máximo la expresión:
Usa dMax (máximo) en vez de DLast, pon la función en el evento después de actualizar Así te aseguras que siempre existe el registro, y que no haya carreras por el ultimo. Current se evalúa al abrir el formulario pero lo salvas al cuando el usuario graba..)
Usa value y no default ( ¿ o el usuario puede cambiar el valor?)
Comprueba que no sea nulo.
---
dim nNuevo
nNuevo= dMax("numero","principal")
if isNull(nNuevo)
'tratar el error.
else
me.numero.value= nNuevo +1
end if
2) Haz una función de reparar
Que corriga registros vacíos.
En cuanto al limite de registro. El teórico es muy alto, y no creo que lo alcances. El practico es mucho más reducido. Si están trabajando en red, varios usuarios pueden saturar fácilmente la red, cuando el fichero MDB pasa de 10 mb.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas