none
crear base datos access vb.net RRS feed

  • Pregunta

  • hola,

    como se puede crear una  base datos access: usuarios.accdb

    con visual basic.net sin usar adox?

    con una tabla: usuarios 

    y usuario , contraseña, apellidos, nombre.

    pues da problemas de todo tipo al usarlo con .net

    gracias.


    Juan Fernandez

    jueves, 28 de diciembre de 2017 20:58

Respuestas

  • "Juan_Agrisoft.es" escribió:

    > como se puede crear una  base datos access: usuarios.accdb
    >
    > con visual basic.net sin usar adox?
    >
    > pues da problemas de todo tipo al usarlo con .net

    Hola, Juan:

    Creo que deberías de indicar qué tipo de problemas son los que tienes para crear una base de datos de Access con la biblioteca de ADOX, porque no sé ya los años que llevo creando bases de datos de Access con dicha biblioteca, y hasta la fecha, no he tenido ningún tipo de problema:

    Cómo crear una nueva base de datos Microsoft Access

    Cómo crear una base de datos Microsoft Access mediante reflexión

    En el ejemplo que aparece en el segundo enlace, no es necesario que referencies en tu proyecto la biblioteca de ADOX, porque la referenciaremos en tiempo de ejecución.

    Un saludo y ¡Feliz Año Nuevo!


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    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, 2 de enero de 2018 15:41
    Moderador
  • "Juan_Agrisoft.es" escribió:

    > en
    >
    > cat.Create("Provider=Microsoft.ACE.OLEDB.12.0;" & _
    >            "Data Source=C:\..
    >
    > me da el error de no registrado.

    ¿No registrado? ¿El qué no está registrado en el mensaje de error que obtienes?

    Quiero entender que NO estará registrado en el equipo el proveedor 'Microsoft.ACE.OLEDB.12.0', porque que yo sepa, la biblioteca de ADOX viene instalada y debidamente registrada con el sistema operativo, salvo que a algún "listillo" le haya dado por desinstalarla del sistema, eliminando del registro la información del componente COM.

    > con Vb 2010 en modo debug con Any CPU va bien.
    >
    > he referenciado en el proyecto de Visual Basic 2010 la biblioteca COM
    > llamada msadox.dll, el proyecto es x86.

    Cuando se trabaja con bases de datos de Access, hay que tener disponible DOS VERSIONES del mismo ejecutable: una compilada para equipos x86 y otra para equipos x64. Será el cliente el que deberá de instalar la que se corresponda con la versión del proveedor 'Microsoft.ACE.OLEDB.12.0' que tenga instalado en su equipo.

    Si el cliente tiene instalada la versión de 32 bits del citado proveedor de datos, tendrá que instalar la versión de 32 bits (x86) del ejecutable de tu aplicación. Y si tiene instalada la versión de 64 bits, entonces deberá instalar la versión de 64 bits (x64) de dicho ejecutable. Pero lo que no se puede hacer en ningún caso, es mezclar "churras con merinas". Es decir, si yo SOLAMENTE tengo instalado en mi PC el componente de 64 bits del proveedor 'Microsoft.ACE.OLEDB.12.0', es normal que obtenga el famoso mensaje de error "El proveedor "Microsoft.ACE.OLEDB.12.0" no está registrado en el equipo local" si estoy ejecutando la versión de 32 bits del ejecutable de tu aplicación (aquella que compilaste en modo x86). En este caso, el cliente deberá de instalar también el componente de 32 bits de dicho proveedor. Y lo mismo sucederá al revés, si el cliente tiene instalado el componente de 32 bits y desea ejecutar la versión de 64 bits del ejecutable de tu aplicación.

    Es por este motivo por el que SIEMPRE hay que tener DOS VERSIONES del ejecutable: una compilada en modo x86 y otra compilada en modo x64. Si tú te has limitado a crear una única compilación con la opción AnyCPU como CPU de destino, todo irá bien si el cliente tiene instalada la versión del proveedor 'Microsoft.ACE.OLEDB.12.0' que se corresponda con la arquitectura de su sistema operativo Microsoft Windows, pero si no es así, tiene todas las papeletas para que obtenga el mensaje de error "El proveedor "Microsoft.ACE.OLEDB.12.0" no está registrado en el equipo local", que me imagino será lo que te estará ocurriendo.

    > O bien crear una base de datos SQL ...

    Pues más o menos estarías en lo mismo, porque en este caso deberás de procurar que todos tus clientes tengan instalado en su equipo la versión del motor de Microsoft SQL Server compatible con la versión de la base de datos de SQL Server que hayas creado y distribuido, aunque también te digo que salvo que hagas uso de algún tipo de dato de campo exclusivo de alguna versión más moderna de SQL Server, normalmente las bases de datos de SQL Server suelen ser compatibles con las diferentes versiones del motor de datos de Microsoft SQL Server.

    De todas maneras, si desconoces cómo crear una base de datos de SQL Server, en este caso mi recomendación es que efectúes la pregunta en el foro adecuado:

    Foro en español de Microsoft SQL Server

    Debes de tener SIEMPRE en cuenta que para que una aplicación funcione adecuadamente, en el equipo cliente deben de estar instalados todos los componentes que requiera tu aplicación, y para aquellos que sean componentes COM (como el caso del proveedor de datos 'Microsoft.ACE.OLEDB.12.0'), también deberá de estar debidamente registrado en el equipo, el cual hace diferencia entre CPU de destino de 32 bits (x86) y de 64 bits (x64).

    > Meses llevo con esto y tengo que volver a vb5 y 6.

    Porque con las versiones previas de Visual Basic las compilaciones eran de 32 bits, pero digo yo que también obtendrías el mismo mensaje de error si el cliente no tiene instalada la versión de 32 bits del proveedor 'Microsoft.ACE.OLEDB.12.0'. ;-)


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    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.



    sábado, 6 de enero de 2018 7:24
    Moderador

Todas las respuestas

  • Hola:

    Mas facil y mas rapido es crear una BD llamada Plantilla.accdb con sus tablas desde Access y luego solo copias este fichero con otro nombre y tendras la BD que buscas

    Un saludo desde Bilbo
    Carlos

    jueves, 28 de diciembre de 2017 21:16
  • Después la aplicación debe de instalarse mediante la aplicación del instalador,  crear un fichero ejecutable y prepararlo para su descarga para miles de usuarios.

    1.- Luego una opcion es crearla con  access y despues añadirla al proyecto de instalacion setup1

    Pero solo puedo hacerlo dentro de /archivos de programa/...

    y la necesito en c:\direc\subdi2\

    Esto no se como hacerlo.

    2.- Crearla en tiempo de ejecucion mediante codigo , no se si con ado.net se puede.

    Alguien tiene un ejemplo de alguna de las dos posibilidades  u otra?

    Gracias de antemano.

    Felices Fiestas.


    viernes, 29 de diciembre de 2017 1:50
  • Hola Juan_Agrisoft.es

    Yo te recomiendo que si no quieres utilizar ADOX, puedes crear tu base de datos con SQL Management Studio, también te recomiendo  utilizar la arquitectura de capas, donde puedes crear tus propias bibliotecas de clases. En lo personal a mi me ha funcionado esta arquitectura ya que el tiempo de respuesta de las bases de datos con la aplicación desarrollada en Visual Basic.net, es mucho mejor que utilizar ADO.

    Quedamos al pendiente de cualquier actualización de tu parte.

    Saludos Cordiales y feliz año nuevo.

    Gracias por usar los foros de MSDN.

    Pablo Rubio
     _____

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    viernes, 29 de diciembre de 2017 17:15
  • Buenas,

    o sea no usar Access sino SQL Server, no?

    Distribuimos la aplicación mediante descarga.

    Como se podría instalar en el cliente mediante un instalador?

    Tiene costo el runtime o el sistema de implementación en la maquina cliente?

    Gracias por tu ayuda, llevo tiempo pensando cambiar todas las bases de datos , y abandonar Access.

    Las nuevas como esta lo estoy viendo.

    Un saludo.


    Juan Fernandez

    viernes, 29 de diciembre de 2017 18:15
  • "Juan_Agrisoft.es" escribió:

    > como se puede crear una  base datos access: usuarios.accdb
    >
    > con visual basic.net sin usar adox?
    >
    > pues da problemas de todo tipo al usarlo con .net

    Hola, Juan:

    Creo que deberías de indicar qué tipo de problemas son los que tienes para crear una base de datos de Access con la biblioteca de ADOX, porque no sé ya los años que llevo creando bases de datos de Access con dicha biblioteca, y hasta la fecha, no he tenido ningún tipo de problema:

    Cómo crear una nueva base de datos Microsoft Access

    Cómo crear una base de datos Microsoft Access mediante reflexión

    En el ejemplo que aparece en el segundo enlace, no es necesario que referencies en tu proyecto la biblioteca de ADOX, porque la referenciaremos en tiempo de ejecución.

    Un saludo y ¡Feliz Año Nuevo!


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    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, 2 de enero de 2018 15:41
    Moderador
  • hola,

    en

    cat.Create("Provider=Microsoft.ACE.OLEDB.12.0;" & _
                   "Data Source=C:\..

    me da el error de no registrado.

    con Vb 2010 en modo debug con Any CPU va bien.

    he referenciado en el proyecto de Visual Basic 2010 la biblioteca COM llamada msadox.dll, el proyecto es x86.

    Pues con setup se publica e instala mediante descarga y me da el error no registrado y no crea la base de datos.

    Meses llevo con esto y tengo que volver a vb5 y 6.

    que hago?

    Otra opción es con el instalador copiarla en \agrisoft\laboral\

    pero no lo he conseguido. como seria ?

    O bien crear una base de datos SQL donde hay un ejemplo?

    gracias


    Juan Fernandez


    sábado, 6 de enero de 2018 2:51
  • "Juan_Agrisoft.es" escribió:

    > en
    >
    > cat.Create("Provider=Microsoft.ACE.OLEDB.12.0;" & _
    >            "Data Source=C:\..
    >
    > me da el error de no registrado.

    ¿No registrado? ¿El qué no está registrado en el mensaje de error que obtienes?

    Quiero entender que NO estará registrado en el equipo el proveedor 'Microsoft.ACE.OLEDB.12.0', porque que yo sepa, la biblioteca de ADOX viene instalada y debidamente registrada con el sistema operativo, salvo que a algún "listillo" le haya dado por desinstalarla del sistema, eliminando del registro la información del componente COM.

    > con Vb 2010 en modo debug con Any CPU va bien.
    >
    > he referenciado en el proyecto de Visual Basic 2010 la biblioteca COM
    > llamada msadox.dll, el proyecto es x86.

    Cuando se trabaja con bases de datos de Access, hay que tener disponible DOS VERSIONES del mismo ejecutable: una compilada para equipos x86 y otra para equipos x64. Será el cliente el que deberá de instalar la que se corresponda con la versión del proveedor 'Microsoft.ACE.OLEDB.12.0' que tenga instalado en su equipo.

    Si el cliente tiene instalada la versión de 32 bits del citado proveedor de datos, tendrá que instalar la versión de 32 bits (x86) del ejecutable de tu aplicación. Y si tiene instalada la versión de 64 bits, entonces deberá instalar la versión de 64 bits (x64) de dicho ejecutable. Pero lo que no se puede hacer en ningún caso, es mezclar "churras con merinas". Es decir, si yo SOLAMENTE tengo instalado en mi PC el componente de 64 bits del proveedor 'Microsoft.ACE.OLEDB.12.0', es normal que obtenga el famoso mensaje de error "El proveedor "Microsoft.ACE.OLEDB.12.0" no está registrado en el equipo local" si estoy ejecutando la versión de 32 bits del ejecutable de tu aplicación (aquella que compilaste en modo x86). En este caso, el cliente deberá de instalar también el componente de 32 bits de dicho proveedor. Y lo mismo sucederá al revés, si el cliente tiene instalado el componente de 32 bits y desea ejecutar la versión de 64 bits del ejecutable de tu aplicación.

    Es por este motivo por el que SIEMPRE hay que tener DOS VERSIONES del ejecutable: una compilada en modo x86 y otra compilada en modo x64. Si tú te has limitado a crear una única compilación con la opción AnyCPU como CPU de destino, todo irá bien si el cliente tiene instalada la versión del proveedor 'Microsoft.ACE.OLEDB.12.0' que se corresponda con la arquitectura de su sistema operativo Microsoft Windows, pero si no es así, tiene todas las papeletas para que obtenga el mensaje de error "El proveedor "Microsoft.ACE.OLEDB.12.0" no está registrado en el equipo local", que me imagino será lo que te estará ocurriendo.

    > O bien crear una base de datos SQL ...

    Pues más o menos estarías en lo mismo, porque en este caso deberás de procurar que todos tus clientes tengan instalado en su equipo la versión del motor de Microsoft SQL Server compatible con la versión de la base de datos de SQL Server que hayas creado y distribuido, aunque también te digo que salvo que hagas uso de algún tipo de dato de campo exclusivo de alguna versión más moderna de SQL Server, normalmente las bases de datos de SQL Server suelen ser compatibles con las diferentes versiones del motor de datos de Microsoft SQL Server.

    De todas maneras, si desconoces cómo crear una base de datos de SQL Server, en este caso mi recomendación es que efectúes la pregunta en el foro adecuado:

    Foro en español de Microsoft SQL Server

    Debes de tener SIEMPRE en cuenta que para que una aplicación funcione adecuadamente, en el equipo cliente deben de estar instalados todos los componentes que requiera tu aplicación, y para aquellos que sean componentes COM (como el caso del proveedor de datos 'Microsoft.ACE.OLEDB.12.0'), también deberá de estar debidamente registrado en el equipo, el cual hace diferencia entre CPU de destino de 32 bits (x86) y de 64 bits (x64).

    > Meses llevo con esto y tengo que volver a vb5 y 6.

    Porque con las versiones previas de Visual Basic las compilaciones eran de 32 bits, pero digo yo que también obtendrías el mismo mensaje de error si el cliente no tiene instalada la versión de 32 bits del proveedor 'Microsoft.ACE.OLEDB.12.0'. ;-)


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    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.



    sábado, 6 de enero de 2018 7:24
    Moderador
  • gracias por todo


    Juan Fernandez

    domingo, 7 de enero de 2018 0:05