Compartir a través de

NO PUEDO CREAR CAMPO CALCULADO POR PROBLEMA DE MaxLocksPerFile

Luis Angel Ñañez Llanos 441 Puntos de reputación
2025-02-18T00:18:04.2+00:00

N° Campos

Tengo una BBDD en Access con cerca de 130 campos.

ACCESOS y UBICACIÓN

El archivo de Access está en una carpeta compartida, solo porque sí realmente, pero solo lo uso yo, nadie más entra.

PROBLEMA

Cuando quiero crear un campo calculado aparece el siguiente problema referente a MaxLocksPerFile.

ACCESS1 Cuando doy clic en ACEPTAR aparece lo siguiente:

ACCESS2

SOLUCIONES QUE INTENTÉ

Intenté modificar el Editor del Registro según varios foros era la solución, pero no me permite. Considerar que se está trabajando en una laptop corporativa.

Imagen del usuario

¿Qué otra cosa puedo hacer para solucionar mi problema por favor? muchas gracias de antemano!

Centro de la comunidad | Sin supervisar
0 comentarios No hay comentarios

Respuesta aceptada por el autor de la pregunta

  1. Jonathan Pereira Castillo 17,395 Puntos de reputación Moderador
    2025-02-18T16:30:48.7266667+00:00

    ¡Hola Luis Angel Ñañez Llanos!

    Bienvenido a Microsoft Q&A.

    Entiendo que estás enfrentando un problema con el límite de MaxLocksPerFile en Access al intentar crear un campo calculado. Aquí tienes una solución detallada y descriptiva para resolver este problema sin modificar el registro, considerando que estás trabajando en una laptop corporativa y no tienes permisos para modificar el registro.

    Solución Alternativa sin Modificar el Registro

    1. Utilizar el Método SetOption en VBA: Puedes utilizar el método SetOption en VBA para cambiar temporalmente el valor de MaxLocksPerFile durante la sesión actual de Access. Aquí tienes un ejemplo de cómo hacerlo:
         Sub AumentarMaxLocksPerFile()
             ' Aumentar temporalmente el valor de MaxLocksPerFile
             DBEngine.SetOption dbMaxLocksPerFile, 15000
             
             ' Tu código para crear el campo calculado aquí
             
             ' Restaurar el valor original si es necesario
             ' DBEngine.SetOption dbMaxLocksPerFile, ValorOriginal
         End Sub
      
      Este método no requiere permisos de administrador y solo afecta la sesión actual de Access.
    2. Optimizar el Código VBA: Si estás utilizando código VBA para realizar múltiples ediciones en registros, asegúrate de optimizar el código para minimizar el número de bloqueos. Aquí tienes algunos consejos:
      • Abrir el Recordset en Modo Exclusivo: Si es posible, abre el recordset en modo exclusivo para reducir los bloqueos compartidos.
      • Utilizar Transacciones: Agrupa las operaciones de edición dentro de una transacción para reducir el número de bloqueos necesarios.
         Sub OptimizarEdiciones()
             Dim dbs As Database
             Dim rst As Recordset
             
             Set dbs = CurrentDb
             Set rst = dbs.OpenRecordset("TuTabla", dbOpenDynaset)
             
             ' Iniciar una transacción
             dbs.BeginTrans
             
             Do Until rst.EOF
                 rst.Edit
                 ' Realizar ediciones aquí
                 rst.Update
                 rst.MoveNext
             Loop
             
             ' Confirmar la transacción
             dbs.CommitTrans
             
             rst.Close
             Set rst = Nothing
             Set dbs = Nothing
         End Sub
      
    3. Dividir la Base de Datos: Si tu base de datos tiene muchos campos y registros, considera dividirla en varias tablas relacionadas para reducir el número de bloqueos necesarios durante las operaciones.

    Recursos Adicionales

    Espero que estas soluciones te sean de ayuda. Si tienes alguna otra pregunta o necesitas más detalles, no dudes en preguntar. ¡Buena suerte con tu proyecto!

    Saludos,

    Jonathan.

    ----------*

    Tu opinión es muy importante para nosotros! Si esta respuesta resolvió tu consulta, por favor haz clic en ''. Esto nos ayuda a mejorar continuamente la calidad y relevancia de nuestras soluciones.

    ¿Le ha resultado útil esta respuesta?


2 respuestas adicionales

Ordenar por: Muy útil
  1. Jonathan Pereira Castillo 17,395 Puntos de reputación Moderador
    2025-04-10T20:22:07.6733333+00:00

    Buenos día Luis Angel Ñañez Llanos!,

    Conforme a la información previamente proporcionada, el objetivo de este mensaje es verificar la misma. Si tienes nuevas actualizaciones relacionadas con este asunto, por favor, siéntete libre de responder en este mismo hilo.

    Atentamente,

    Jonathan

    -----------

    Tu opinión es muy importante para nosotros! Si esta respuesta resolvió tu consulta, por favor haz clic en ‘Sí’. Esto nos ayuda a mejorar continuamente la calidad y relevancia de nuestras soluciones. ¡Gracias por tu colaboración!

    ------

    ¿Le ha resultado útil esta respuesta?

    0 comentarios No hay comentarios

  2. Jonathan Pereira Castillo 17,395 Puntos de reputación Moderador
    2025-03-06T20:58:58.3666667+00:00

    Hola Luis Angel Ñañez Llanos!,

    El propósito de este mensaje es verificar la información proporcionada. Si tienes más actualizaciones sobre este tema, no dudes en responder en este mismo hilo.

    Respetuosamente,

    Jonathan

    ---------

    Tu opinión es muy importante para nosotros! Si esta respuesta resolvió tu consulta, por favor haz clic en ‘Sí’. Esto nos ayuda a mejorar continuamente la calidad y relevancia de nuestras soluciones. ¡Gracias por tu colaboración!

    ¿Le ha resultado útil esta respuesta?

    0 comentarios No hay comentarios

Su respuesta

Las respuestas pueden ser marcadas como "Aceptadas" por el autor de la pregunta y "Recomendadas" por los moderadores, lo que ayuda a los usuarios a saber que la respuesta ha resuelto el problema del autor.