Error 3045, imposible utilizar nomDB. Archivo en uso.
mihego32
Mensajes publicados
40
Estado
Miembro
-
ron003 Mensajes publicados 4 Fecha de registro Estado Miembro Última intervención -
ron003 Mensajes publicados 4 Fecha de registro Estado Miembro Última intervención -
Hola, Buenas noches,
Me siento completamente desorientado frente a este mensaje:
Imposible usar «ma-DB». Archivo en uso. (3045)
que aparece cuando el código asociado a un botón de un formulario muy simple llega a la instrucción "Set MyDB = CurrentDb" en esta Sub (las declaraciones adecuadas están OK):
Soy el único usuario de mi PC con Win 8 Pro y msAccess 2010, he probado con las versiones .accdb y .mdb. He intentado con procedimientos de Compactar y Reparar, con Decompile. He verificado los permisos de la DB. He recreado una nueva DB, importado los objetos: mismo error.
En VBA, tengo en este orden (y he intentado modificando la secuencia) las referencias siguientes:
- Visual Basic for Applications
- Microsoft Access 14.0 Object Library
- Ole Automation
- Microsoft Office 14.0 Access database engine Object Library
- Microsoft Scripting Runtime
- Microsoft Word 14.0 Object Library
Estas dos últimas librerías son necesarias para procesar formularios de Word. Preciso que no he tenido ningún problema para abrir estos formularios, analizarlos y extraer datos, siempre y cuando no llegara a la apertura de la DB y de las tablas.
He probado fórmulas alternativas para abrir la DB y abrir una de sus tablas:
Leí en un sitio que las siguientes instrucciones podían resolver el problema:
La primera pasa pero no evita el error en el Set MyDB, la segunda es suficiente para desencadenar el error 3045.
No volví a tener el error después de haber transferido mis bases de un folder "D:\Proj2013PO\DB" a un folder "D:\Proj2013PO\ProyectoMSA", el cambio de nombre fue fructuoso durante 1 o 2 horas, luego volvió repentinamente después de haber codificado algunos pasos de procesamiento. Este no es mi primer proyecto con el que tengo este error intermitente, impredecible y m... Desarrollé proyectos MSA desde Access 2 y llevo 40 años como analista-programador. Debo tener una docena de aplicaciones MSA personales, con múltiples bases de datos, etc. He investigado en numerosos sitios pero en vano...
Es muy simple: si este error continúa bloqueándome, tendré que abandonar este proyecto de manera voluntaria para una ONG de la cual soy miembro. Tendré que considerar desinstalar Microsoft Access en el futuro.
Así que cualquier consejo o opinión es bienvenido y les agradezco su atención.
Michel
Configuración: Windows 8 PRO/ Firefox 18.0/Office 2010
Me siento completamente desorientado frente a este mensaje:
Imposible usar «ma-DB». Archivo en uso. (3045)
que aparece cuando el código asociado a un botón de un formulario muy simple llega a la instrucción "Set MyDB = CurrentDb" en esta Sub (las declaraciones adecuadas están OK):
Private Sub cmdImporterFiches_Click() ' Identifica los archivos presentes en la carpeta de extracción de correos, ' procesa el contenido y lo mueve a la carpeta de Tratados On Error GoTo HandleErrors Stop Set MyDB = CurrentDb ' <=== <=== <=== <=== <=== AQUÍ EL ERROR FATAL Set wDossier = wFSO.GetFolder(Me.ctlChemin) For Each wFil In wDossier.Files If Left(wFil.Name, 9) = Me.ctlPréfixe Then Extract (wFil.Name) ' validación, lectura y tratamiento de cada formulario If SwOK = True Then ' detención en el primer archivo no procesable wFil.Move Me.ctlChemin & Me.ctlFichesTraitées Else Exit For End If End If Next wFil Set MyDB = Nothing: Set wDoc = Nothing : Set wDossier = Nothing Set wFSO = Nothing: Set wApp = Nothing ExitHere: Exit Sub HandleErrors: HandleErrors Err.Number, "cmdImporterFiches_Click" Resume ExitHere End Sub '=======================================================
Soy el único usuario de mi PC con Win 8 Pro y msAccess 2010, he probado con las versiones .accdb y .mdb. He intentado con procedimientos de Compactar y Reparar, con Decompile. He verificado los permisos de la DB. He recreado una nueva DB, importado los objetos: mismo error.
En VBA, tengo en este orden (y he intentado modificando la secuencia) las referencias siguientes:
- Visual Basic for Applications
- Microsoft Access 14.0 Object Library
- Ole Automation
- Microsoft Office 14.0 Access database engine Object Library
- Microsoft Scripting Runtime
- Microsoft Word 14.0 Object Library
Estas dos últimas librerías son necesarias para procesar formularios de Word. Preciso que no he tenido ningún problema para abrir estos formularios, analizarlos y extraer datos, siempre y cuando no llegara a la apertura de la DB y de las tablas.
He probado fórmulas alternativas para abrir la DB y abrir una de sus tablas:
Set MyDB = OpenDatabase(CheminNomDB, False) Set MyDB = DBEngine(0)(0)
Leí en un sitio que las siguientes instrucciones podían resolver el problema:
RefreshDatabaseWindow DBEngine.Idle dbRefreshCache
La primera pasa pero no evita el error en el Set MyDB, la segunda es suficiente para desencadenar el error 3045.
No volví a tener el error después de haber transferido mis bases de un folder "D:\Proj2013PO\DB" a un folder "D:\Proj2013PO\ProyectoMSA", el cambio de nombre fue fructuoso durante 1 o 2 horas, luego volvió repentinamente después de haber codificado algunos pasos de procesamiento. Este no es mi primer proyecto con el que tengo este error intermitente, impredecible y m... Desarrollé proyectos MSA desde Access 2 y llevo 40 años como analista-programador. Debo tener una docena de aplicaciones MSA personales, con múltiples bases de datos, etc. He investigado en numerosos sitios pero en vano...
Es muy simple: si este error continúa bloqueándome, tendré que abandonar este proyecto de manera voluntaria para una ONG de la cual soy miembro. Tendré que considerar desinstalar Microsoft Access en el futuro.
Así que cualquier consejo o opinión es bienvenido y les agradezco su atención.
Michel
Configuración: Windows 8 PRO/ Firefox 18.0/Office 2010
2 respuestas
Hola,
Sigo bloqueado al 100% a pesar de mis intentos de ayer y esta mañana.
Por lo tanto, he creado una nueva base de datos "mini.mdb" en la raíz D:, con 1 tabla que contiene solo un campo clave, 1 formulario sin origen con 1 botón que ejecuta este código:
Ejecución OK.
Luego moví la base de datos al directorio donde trabajo "D:\po2013\ProyectoMSA". Abrí la base, la activé para eliminar la protección de Win8 después de mover el archivo, abrí el formulario y hice clic en el botón y Arghh, ¡ERR 3045 volvió a golpear mis ojos atónitos!
Por lo tanto, es posible (¿quién sabe?) que el problema esté relacionado con los accesos a los archivos y/o carpetas:
- "mini.mdb": acceso libre, la casilla "Sólo lectura" no está marcada. Parte "Atributos avanzados", 2 casillas están marcadas: "El archivo está listo para ser archivado" y "Permitir la indexación del contenido de este archivo además de las propiedades del archivo".
- carpeta "ProyectoMSA": la casilla "Sólo lectura (se aplica solo a los archivos de la carpeta)" está en un estado intermedio (pequeño cuadrado negro dentro de la casilla) entre no marcada (casilla blanca) y marcada (casilla blanca con el V clásico). Desmarqué la casilla así como la de las carpetas superiores "po2013", lo que da un mensaje con, entre otros, una sola casilla marcada "Aplicar los cambios a esta carpeta, a las subcarpetas y a los archivos" sin posibilidad de desmarcarla (y la otra casilla no es accesible); la única opción: [OK].
- raíz D: 97,6 Go de los cuales 14,6 utilizados; la había puesto en "Compartido" aunque no debería ser así, pero quién sabe. Los "Usuarios autenticados", "Usuarios", "Administradores" y "Sistema" tienen control total. Difícil hacer más abierto. La gestión de cuotas no está activada.
Nueva ejecución: mismo error y la casilla "Sólo lectura" para la carpeta "ProyectoMSA" vuelve a estar en estado intermedio sin que yo lo sepa; leí en un sitio de Microsoft que esto no tiene impacto en los permisos a nivel de archivo.
He eliminado la indexación en el nivel de mini.mdb. Nuevo intento y sigue el error.
¿Dónde está esta cuerda para ahorcarme? No, mejor investigaré el lado de LibreOffice y, además, es gratuito y no como Office: cientos de euros y años de práctica y experiencia a la basura.
Michel
Sigo bloqueado al 100% a pesar de mis intentos de ayer y esta mañana.
Por lo tanto, he creado una nueva base de datos "mini.mdb" en la raíz D:, con 1 tabla que contiene solo un campo clave, 1 formulario sin origen con 1 botón que ejecuta este código:
Dim MyDB As Database Private Sub cmdMini_Click() '============================== On Error GoTo GestionErreurs Stop Set MyDB = CurrentDb Set MyDB = Nothing ExitHere: Exit Sub GestionErreurs: GestionErreur Err.Number, "cmdMini_Click" Resume ExitHere End Sub '==========================================
Ejecución OK.
Luego moví la base de datos al directorio donde trabajo "D:\po2013\ProyectoMSA". Abrí la base, la activé para eliminar la protección de Win8 después de mover el archivo, abrí el formulario y hice clic en el botón y Arghh, ¡ERR 3045 volvió a golpear mis ojos atónitos!
Por lo tanto, es posible (¿quién sabe?) que el problema esté relacionado con los accesos a los archivos y/o carpetas:
- "mini.mdb": acceso libre, la casilla "Sólo lectura" no está marcada. Parte "Atributos avanzados", 2 casillas están marcadas: "El archivo está listo para ser archivado" y "Permitir la indexación del contenido de este archivo además de las propiedades del archivo".
- carpeta "ProyectoMSA": la casilla "Sólo lectura (se aplica solo a los archivos de la carpeta)" está en un estado intermedio (pequeño cuadrado negro dentro de la casilla) entre no marcada (casilla blanca) y marcada (casilla blanca con el V clásico). Desmarqué la casilla así como la de las carpetas superiores "po2013", lo que da un mensaje con, entre otros, una sola casilla marcada "Aplicar los cambios a esta carpeta, a las subcarpetas y a los archivos" sin posibilidad de desmarcarla (y la otra casilla no es accesible); la única opción: [OK].
- raíz D: 97,6 Go de los cuales 14,6 utilizados; la había puesto en "Compartido" aunque no debería ser así, pero quién sabe. Los "Usuarios autenticados", "Usuarios", "Administradores" y "Sistema" tienen control total. Difícil hacer más abierto. La gestión de cuotas no está activada.
Nueva ejecución: mismo error y la casilla "Sólo lectura" para la carpeta "ProyectoMSA" vuelve a estar en estado intermedio sin que yo lo sepa; leí en un sitio de Microsoft que esto no tiene impacto en los permisos a nivel de archivo.
He eliminado la indexación en el nivel de mini.mdb. Nuevo intento y sigue el error.
¿Dónde está esta cuerda para ahorcarme? No, mejor investigaré el lado de LibreOffice y, además, es gratuito y no como Office: cientos de euros y años de práctica y experiencia a la basura.
Michel