Subscribe:

Labels

viernes, 27 de abril de 2012

Conexión Java y Microsoft Access 2010 desde Netbeans en Windows 7

Hola a todos!!, esta pubicación está dedicada a todos pero en especial a un compañero de clases; William, bueno empecemos mencionando lo que necesitamos para el correcto funcionamiento de este ejemplo:

Microsoft Access, en cualquiera de sus versiones ya sea anteriores(2003) como posteriores (trabajé con la versión 2010), lo que cambia es únicamente las extensiones con las que se guarda una Base de Datos.

Una vez abierto Microsoft Access procedemos a crear la Base de Datos, la Tabla y luego rellenamos algunos datos.
*Nota 01: Si no logras cambiar el nombre de la BD a tu preferencia, hazlo ubicando el archivo origen.
*Nota 02: Observa que la extensión de la BD es ".accdb" (esto en versiones superiores desde M. Access 2007), cosa que en versiones inferiores al 2007 es ".mdb".
*Nota 03: Guarda la BD en la dirección por defecto que Access tiene asignado en el sistema ("C:\Users\"tu_usuario"\Documents" en Windows7), puesto que esta publicación será para Conexiones indirectas o estáticas.

Con lo cual deberá quedar de la siguiente manera:

Ya tenemos la base de datos!
Bueno ahora vamos a configurar el servicio como en los otros casos (Derby), vamos al panel de control:
Buscamos "ODBC"
Ahora estamos en la pestaña "DSN Usuario" y escogemos tal como se muestra en la siguiente imagen:
A nuestro DSN (Data Source Name) lo llamaremos "ADB", luego ubicaremos el archivo de la BD, tal como se muestra en la imagen: 
Ahora vamos a agregarle una contraseña
*Nota: Aunque por razones que están en proceso de investigación la contraseña que se pone aquí no se activa (por decirlo de otra forma, osea pongamos o no contraseña da lo mismo). Veremos más adelante cómo ponerle una contraseña a nuestra BD!!

 Nos queda Aceptar y Aceptar!!
Ahora veamos el código fuente del proyecto:
Recibirá el nombre y la estructura de carpetas que se muestra a continuación:
Veamos la clase Conexion que varió ligeramente:

Como en este caso no hemos utilizando un driver como en casos anteriores; trabajamos con Class.forName(" ").
Se preguntarán qué hace esa contraseña ahí ("123456"); si lineas arriba mencioné que daba igual ponerla o no; pues bien, lo que dije es cierto; pueden modificar la contraseña de esta clase y con normalidad seguirá haciendo la conexión y consulta.

Y claro la clase ConexionConsolaJavaAccess seguirá siendo la misma que de los proyectos anteriores (Conexión Java y Derby utilizando Netbeans 7 (ConexionConsolaJavaDerby)):
Ahora ejecutando nuestra clase ConexionConsolaJavaAccess debería mostrarnos lo siguiente:
Pero, sobre la contraseña:
¿Eso quiere decir que nuestra base de datos está desprotegida?. Pues cualquiera pudiese ingresar a ella.
La solución a ese problema se tiene que implementar desde el mismo Microsoft Access de la siguiente forma:

Abrimos la base de datos "AccessBD.accdb" en "Abrir en modo exclusivo" como se muestra:
 Ahora hacemos lo siguiente:
 Finalmente ponemos la contraseña y damos Aceptar y Aceptar!!!
Ahora sí verás que la contraseña hace efecto a nuestra BD "AccessBD.accdb", y si en la clase Conexion modificas la contraseña, nuestro proyecto no tendrá permisos para acceder a la BD.
Dudas y sugerencias, háganlas llegar... gracias!

Ahhhhhhh y por favor si el material te fue útil ayúdame recomendando por las redes sociales; dando "Me gusta" en Javaenaccion en Facebook o "+1" en Google+, etc etc. en :D.

9 comentarios:

Lidia Silva _pĿª∫ŧ‼ќ_ġї®Ŀ _!! dijo...

holaaaaaaaa

tengo un problema en el paso

Ahora estamos en la pestaña "DSN Usuario" y escogemos tal como se muestra en la siguiente imagen:

no me aparece esa lista. :( solo me aparece sql server que puedo hacer

Roger Soto dijo...

Hola, veamos... en primer lugar dime qué versión de MS Access utilizas y haber si me mandas la pantalla del problema que mencionas (sin_querer@hotmail.com), para tratar más de cerca la situación. Aunque si no aparece pudiera ser una cuestión de DRIVERS, es muy extraño pues si tienes el MS Access instalado, debería aparecer con normalidad.

Aquí hay una serie de drivers para Access - Java.

http://developers.sun.com/product/jdbc/drivers/search_results.jsp?jdbc_version=0&vendor_name=&cert_mode=and&jdbc_driver_type_mode=and&dbms=6&dbms_mode=and&features_mode=and&results_per_page=20&submit=Buscar

Pero de todas maneras por favor mándame la captura de pantalla.

Programación para aprender dijo...

Tendrás el proyecto por ahí para verlo mi correo es alberto13711@gmail.com

Roger Soto dijo...

hola Luis, sí tengo el proyecto pero hay un detalle, si te percatas lo primordial al momento de trabajar con Access es que TIENES QUE REALIZAR LA CONFIGURACIÓN DE ACCESS, osea el puente (para este ejemplo, en tu PC) y de nada serviría si te mando el proyecto; guíate hasta la imagen 7 pues, hasta ahí está la mencionada configuración, lo demás es lo mismo tanto para ti como para cualquier otro usuario. Nos vemos!

Martín Franco dijo...

Bueno he tenido dificultades con esto lo que quiero es conectar mi base de datos access 2010 pero se presenta problema si es netsbeans 7.3.1

Roger Soto dijo...

Entonces es probable que tu problema se presente gracias a la versión de Netbeans, creo que no deberías apresurarte con las versiones, pues entre 7 y 7.3 o quizá otra, no hay muchas diferencias, bueno al menos para mis necesidades no varían mucho o casi nada. Te recomiendo usar versiones más estables como son la 7 ó 7.2. Saludos! :)

Martín Franco dijo...

Muchas gracias por la ayuda, me dió luces!

Martín Franco dijo...

De verdad quisiera una manito para esta conexión con las versiones 2010 y 7.3.1 sería muy útil para muchos.Te agradecería, el problema es un formulario en netsbeans que al dar aceptar me diga que la conexión es correcta.Te agradería infintamente he probado por todos lados y me da conexion errada.
Saludos y gracias

Roger Soto dijo...

Hola Martín, por favor ni bien leas este mensaje escríbeme... sotosroger@gmail.com

Todo en Infolinks