none
Problemas con Access en Windows Form RRS feed

  • Pregunta

  • Hola buenas!

    He hecho un Windows Form con una base de datos Access, con el Visual Studio funciona bien, pero cuando he creado el instalador o pongo la carpeta del proyecto en otro ordenador y ejecuto el .Exe no funciona, da errores, mire y la base de datos de Access estaba en modo lectura. Pienso que ese es el problema ya que cuando intento insertar o modificar o cualquier cosa con la BD da un error de que no es actualizable.

    He visto que al poner la carpeta del proyecto en C:\Program File se pone en solo lectura y por eso falla, no me deja quitarle dicha propiedad en boton derecho y desactivar la propiedad, algun consejo?

    Gracias por todo!


    • Editado xLoin miércoles, 3 de abril de 2019 11:14
    miércoles, 3 de abril de 2019 10:22

Todas las respuestas

  • No es que hayas dado muchos detalles que digamos, pero cuando alguien tiene un problema como el tuyo el motivo más habitual suele ser este: La base de datos está ubicada en la misma carpeta del ejecutable.

    Cuando haces un instalador y lo instalas, normalmente se instala bajo c:\archivos de programa. Esta carpeta (y sus subcarpetas) son de solo-lectura para los usuarios no administradores. Esto se hace por motivos de seguridad, para que los usuarios no puedan modificar los ejecutables de los programas, que sería un riesgo tremendo. Pero, claro, esto presume que en esa carpeta solo estarán los ejecutables de los programas. Los ficheros de datos NO deberían estar ahí; de lo contrario se presentan problemas como el que estás viendo.

    La solución, como es lógico, consiste en no poner en esa carpeta tu base de datos. El sitio "estándard" es una subcarpeta por debajo de la carpeta de datos del usuario ("Mis documentos"), si la base de datos es privada de cada usuario. Si, por el contrario, varios usuarios comparten el PC y todos deben ver la misma base de datos, entonces el sitio adecuado es una subcarpeta bajo la carpeta de datos comunes (por defecto C:\Program data en un Windows inglés -- es una carpeta oculta, no la verás en el explorador a no ser que actives la opción de "ver archivos ocultos"). En cualquiera de todos los casos, no debe estar en la misma carpeta del ejecutable.

    • Propuesto como respuesta Carlos_Ruiz_M miércoles, 3 de abril de 2019 15:13
    miércoles, 3 de abril de 2019 11:17
    Moderador