NO PUEDO CREAR CAMPO CALCULADO POR PROBLEMA DE MaxLocksPerFile

Luis Angel Ñañez Llanos 256 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!

Windows 11
Windows 11
Sistema operativo de Microsoft diseñado para promover la productividad, la creatividad y la facilidad de uso.
28 preguntas
Preguntas y respuestas (Q&A) de Microsoft
Preguntas y respuestas (Q&A) de Microsoft
Use esta etiqueta para compartir sugerencias, solicitudes de características y errores con el equipo de Microsoft Q&A. El equipo de Microsoft Q&A evaluará sus comentarios periódicamente y proporcionará actualizaciones a lo largo del proceso.
498 preguntas
Microsoft Entra Private Access
Microsoft Entra Private Access
Microsoft Entra Private Access proporciona un acceso de red seguro y profundo, consciente de la identidad y de confianza cero, a todas las aplicaciones y recursos privados.
6 preguntas
Microsoft Entra Internet Access
Microsoft Entra Internet Access
Un servicio Microsoft Entra que proporciona una puerta de enlace web segura centrada en la identidad que protege el acceso a Internet, el software como servicio (SaaS) y las aplicaciones y recursos de Microsoft 365.
17 preguntas
0 comentarios No hay comentarios
{count} votos

2 respuestas

Ordenar por: Lo más útil
  1. Jonathan Pereira Castillo 15,320 Puntos de reputación Microsoft External Staff
    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.

    0 comentarios No hay comentarios

  2. Jonathan Pereira Castillo 15,320 Puntos de reputación Microsoft External Staff
    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!

    0 comentarios No hay comentarios

Su respuesta

Las respuestas pueden ser marcadas como Respuestas aceptadas por el autor de la pregunta, lo que indica a los usuarios que la respuesta resolvió su problema.