none
Problemas con contraseña Access RRS feed

  • Pregunta

  • Hola a todos

    Estoy haciendo una aplicación que se conecta a una base de datos access 2013 que tiene contraseña, al ejecutar mi aplicación no puedo conectarme a la base de datos a pesar que he colocado la contraseña correcta en la conexión me aparece el mensaje "No es una contraseña valida" , pero cuando abro access y digito la misma contraseña la bd se abre sin problemas. ¿Qué puede estar pasando? este es el código que utilizo para la conexión

    Dimcn AsNewOleDb.OleDbConnection

    DimBD AsString= "C:\Activity.accdb")

    cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="& BD & ";Jet OLEDB:Database Password=Dcv_123;"

    cn.Open()

    Gracias

    lunes, 14 de diciembre de 2015 16:29

Respuestas

  • "MateoDeveloper" escribió:

    > Mi sistema operativo es Windows 10 - 64 bits, mi Access 2013 es de
    > 64 bits y el compilado es para AnyCPU.
    >

    Si es así, no observo inconveniente alguno para que desde tu aplicación de Visual Basic puedas abrir la base de datos de Access protegida con el código fuente que estás ejecutando, porque esa es la cadena de conexión que hay que utilizar, siempre y cuando la contraseña de la base de datos sea Dcv_123.

    Lo único que te aconsejaría es que NO instales archivos, incluido el archivo de Access, en la carpeta raíz de cualquier unidad, y menos en la del sistema operativo, porque ello requerirá que tu aplicación se tenga que ejecutar con una cuenta de usuario con permisos de Administrador, pero eso no quiere decir que obtengas el mensaje de error "No es una contraseña válida".

    Por cierto, ¿con qué cuenta de usuario estás ejecutando tu aplicación? ¿Con una cuenta tipo Administrador o con una cuenta de usuario normal y corriente? Tienes que ejecutar tu aplicación, o iniciar Visual Studio si es que ejecutas el programa desde su propio entorno, con la misma cuenta de usuario que utilizas para abrir la base de datos con Microsoft Access 2013.

    > cuando creé la contraseña me apareció este mensaje "El cifrado de bloques
    > no es compatible con el bloqueo por filas, por lo que éste se omitirá".

    Ese mensaje es una advertencia que no tiene nada que ver con el mensaje de error que obtienes en tu aplicación, que vuelvo a insistir, me parece bastante extraño. Lo que sí te digo es que, al haber cifrado tu base de datos de Access desde el propio Access 2013, los usuarios de tu aplicación necesitarán tener instalados en su equipo los Componentes de Access 2010 o superior, porque si solo tienen los de Access 2007, obtendrán el mensaje de error "No se puede abrir la base de datos ''. Es posible que su aplicación no reconozca este tipo de base de datos o que el archivo esté dañado" al intentar abrir esa base de datos protegida.

    Por curiosidad, ¿sólo te ocurre con ese archivo o con cualquier otro archivo de Access que tengas protegido y deseas abrirlo desde tu aplicación de Visual Basic .NET?


    Enrique Martínez Montejo
            [MS MVP - VB]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.




    martes, 15 de diciembre de 2015 6:54
    Moderador

Todas las respuestas

  • Hola a todos

    Estoy haciendo una aplicación (VB.NET 2012) que se conecta a una base de datos Access 2013 que tiene contraseña, al ejecutar mi aplicación no puedo conectarme a la base de datos a pesar que he colocado la contraseña correcta en la conexión me aparece el mensaje "No es una contraseña valida" , pero cuando abro access e ingreso la misma contraseña, la BD se abre sin problemas. ¿Qué puede estar pasando? este es el código que utilizo para la conexión

    Dim cn As New OleDb.OleDbConnection

    Dim BD As String= "C:\Activity.accdb")

    cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="& BD & ";Jet OLEDB:Database Password=Dcv_123;"

    cn.Open()



    Gracias

    lunes, 14 de diciembre de 2015 16:45
  • "MateoDevelopers" escribió:

    > Estoy haciendo una aplicación que se conecta a una base de datos access 2013
    > que tiene contraseña, al ejecutar mi aplicación no puedo conectarme a la base
    > de datos a pesar que he colocado la contraseña correcta en la conexión me
    > aparece el mensaje "No es una contraseña valida" , pero cuando abro access y
    > digito la misma contraseña la bd se abre sin problemas. ¿Qué puede estar
    > pasando?

    Hola:

    Tu sistema operativo Windows, ¿es de 32 o de 64 bits? En cuanto a la arquitectura de la versión de Microsoft  Access 2013 que tienes instalada en tu equipo, ¿es de 32 o de 64 bits? Por último, tu aplicación de Visual Basic la estás compilando para x86, x64 o para AnyCPU?

    Responde primero a estas preguntas y, según lo que respondas, veremos a ver lo que se puede hacer. ;-)

    Desde luego me parece bastante extraño que obtengas el error "No es una contraseña válida", porque el código que estás ejecutando es correcto. Si la arquitectura de tu aplicación fuese incompatible con el motor de datos de Access 2013 que actualmente tienes instalado en tu equipo, obtendrías el mensaje de error "No se puede abrir la base de datos ''. Es posible que su aplicación no reconozca este tipo de base de datos o que el archivo esté dañado."

    ¿Estás completamente seguro que desde tu aplicación de Visual Basic estás intentando abrir el archivo de Access 'C:\Activity.accdb' cuya contaseña es 'Dcv_123'? Si es así, por ahora no encuentro motivo alguno para que obtengas el mensaje de error "No es una contraseña válida" ejecutando el siguiente código:

            Dim BD As String = "C:\Activity.accdb"
            Dim cadenaConexion As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & BD & ";Jet OLEDB:Database Password=Dcv_123;"
    
            Try
                Using cn As New OleDb.OleDbConnection(cadenaConexion)
                    cn.Open()
                    MessageBox.Show(cn.ConnectionString)
                End Using
    
            Catch ex As Exception
                MessageBox.Show(ex.Message)
    
            End Try

    Un saludo


    Enrique Martínez Montejo
            [MS MVP - VB]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.



    lunes, 14 de diciembre de 2015 16:55
    Moderador
  • Hola Enrique,

    Mi sistema operativo es Windows 10 - 64 bits, mi Access 2013 es de 64 bits y el compilado es para AnyCPU.

    Un detalle mas!, cuando creé la contraseña me apareció este mensaje "El cifrado de bloques no es compatible con el bloqueo por filas, por lo que éste se omitirá". Sin embargo puedo abrir sin problemas la base de datos cuando la abro desde Access, ¿sera ese el problema?

    Gracias por responder.

    lunes, 14 de diciembre de 2015 23:35
  • "MateoDeveloper" escribió:

    > Mi sistema operativo es Windows 10 - 64 bits, mi Access 2013 es de
    > 64 bits y el compilado es para AnyCPU.
    >

    Si es así, no observo inconveniente alguno para que desde tu aplicación de Visual Basic puedas abrir la base de datos de Access protegida con el código fuente que estás ejecutando, porque esa es la cadena de conexión que hay que utilizar, siempre y cuando la contraseña de la base de datos sea Dcv_123.

    Lo único que te aconsejaría es que NO instales archivos, incluido el archivo de Access, en la carpeta raíz de cualquier unidad, y menos en la del sistema operativo, porque ello requerirá que tu aplicación se tenga que ejecutar con una cuenta de usuario con permisos de Administrador, pero eso no quiere decir que obtengas el mensaje de error "No es una contraseña válida".

    Por cierto, ¿con qué cuenta de usuario estás ejecutando tu aplicación? ¿Con una cuenta tipo Administrador o con una cuenta de usuario normal y corriente? Tienes que ejecutar tu aplicación, o iniciar Visual Studio si es que ejecutas el programa desde su propio entorno, con la misma cuenta de usuario que utilizas para abrir la base de datos con Microsoft Access 2013.

    > cuando creé la contraseña me apareció este mensaje "El cifrado de bloques
    > no es compatible con el bloqueo por filas, por lo que éste se omitirá".

    Ese mensaje es una advertencia que no tiene nada que ver con el mensaje de error que obtienes en tu aplicación, que vuelvo a insistir, me parece bastante extraño. Lo que sí te digo es que, al haber cifrado tu base de datos de Access desde el propio Access 2013, los usuarios de tu aplicación necesitarán tener instalados en su equipo los Componentes de Access 2010 o superior, porque si solo tienen los de Access 2007, obtendrán el mensaje de error "No se puede abrir la base de datos ''. Es posible que su aplicación no reconozca este tipo de base de datos o que el archivo esté dañado" al intentar abrir esa base de datos protegida.

    Por curiosidad, ¿sólo te ocurre con ese archivo o con cualquier otro archivo de Access que tengas protegido y deseas abrirlo desde tu aplicación de Visual Basic .NET?


    Enrique Martínez Montejo
            [MS MVP - VB]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.




    martes, 15 de diciembre de 2015 6:54
    Moderador
  • Hola, se supo algo más de este tema problema? Me sucede exactamente lo mismo. Saludos!
    viernes, 1 de junio de 2018 14:42