Capturar webcam con VB.NET

¿Que haremos? Crearemos una aplicación en Visual Studio, la cual hará uso de una webcam para capturar el video en frames independientes y depositarlos en memoria para despues mostralos al usuario a través de un picturebox y un Timer para crear la ilusión de movimiento. ¿Porque lo haremos? Porque es justo y necesario ¿Que necesitamos? [...]

Envío de correo con JavaMail/Netbeans

JavaMail es una expansión de Java que facilita el envío y recepción de e-mail desde código java. JavaMail implementa el protocolo SMTP (Simple Mail Transfer Protocol) así como los distintos tipos de conexión con servidores de correo -TLS, SSL, autentificación con usuario y password, etc [Según SantaWikipedia] ¿Qué necesitamos? JavaMail 1.4.5 Java y Netbeans 6.9 [...]

Proyecto de base de datos Firebird VB

En este proyecto realizaremos una aplicación de base de datos Firebird con el lenguaje de programación de Visual Basic de Microsoft, este proyecto tendrá las funciones básicas de gestión INSERT, DELETE, UPDATE y una interfaz de usuario para utilizarlas. ¿Que necesitamos? Visual Studio 2008 o superior Firebird última versión Firebird ADO.NET Data Provider. Conocimientos básicos [...]

Imprimir imagen con Print

La siguiente clase hace uso de PRINT para imprimir una imagen que se encuentra en un variable de tipo FileInputStream, esta clase a su vez es implementada desde una interfaz que hace fácil su uso, la clase así como todo el proyecto esta comentado. import java.io.File; import javax.print.Doc; import java.io.IOException; import javax.print.DocFlavor; import javax.print.SimpleDoc; import java.io.FileInputStream; [...]

Code Army Bolivia

28/1/11

Conexion base de datos Access y Java

JAN29


Para poder acceder a una base de datos de Acces 2000-2010 de Microsoft, podemos utilzar dos formas, una de ellas es utilizando un Origen de Datos ODBC para utiliarlo como puente entra Access y Java, ó,una forma mas directa, es enlazar la base de datos Access con Java utilizando la API JDBC de java y especificando el driver, la base de datos y el password (si es que tuviera) para realizar una conexion como se hizo con MySQL y Java. (Conexion a Base de datos)


Nuestra clase java para poder realizar una conexion, es la iguiente:

Clase: Access_connection.java
codigo fuente
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 * @web http://jc-mouse.blogspot.com/
 * @author Mouse
 */
public class Access_connection {
   //contraseña a la base de datos si es que tuviera, si no se deja vacio
   static String password = "";
   //nombre de la base de datos Acces con extension *.mdb o *.accdb
   static String dbName = "TU_BASE_DE_DATOS.mdb";
   //direccion de la base de datos
   static String bd = System.getProperty("user.dir") + "\\" + dbName + ";PWD=" + password;
   //driver para base de datos Access 2000, 2003, 2007, 2010
   static String url = "jdbc:odbc:;DRIVER=Microsoft Access Driver (*.mdb, *.accdb);DBQ=" + bd;
   Connection conn = null;
   
   public Access_connection() {
      try{
         //obtenemos el driver para Access 
         Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
         //obtenemos la conexión         
         conn = DriverManager.getConnection(url);
         //si la conexion tuvo exito
         if (conn!=null){
            System.out.println("Conexión a base de datos "+bd+". listo");
         }
      }catch(SQLException e){
         System.out.println(e);
      }catch(ClassNotFoundException e){
         System.out.println(e);
      }
   }
   
   /**Permite retornar la conexión*/
   public Connection getConnection(){
      return conn;
   }

   //como dice su nombre, termina la conexion a la base de datos
   public void desconectar(){
        try {
            conn.close();
            //conn = null;
            System.out.println("La conexion a la  base de datos " + bd + " a terminado");
        } catch (SQLException ex) {
            Logger.getLogger(Access_connection.class.getName()).log(Level.SEVERE, null, ex);
        }
       
   }
}

La direccion a la base de datos  se la realiza utilizando el comando "System.getProperty("user.dir")", el cual nos retorna la direccion de nuestro proyecto (*.JAR), si se desea especificar otra dirección, por ejemplo: "E:/mi base de datos/db.mdb", solamente se debe eliminar esa instruccion.

La forma de implementar esta clase, es similar a la clase conexion MySQL Conexion a Base de datos. osea:


public class Main {

    public static void main(String[] args) {
      //se realiza la conexion   
        Access_connection access = new Access_connection();
 //se cierra la conexion
        access.desconectar();
    }
    
}

Access cuenta con dos extensiones para base de datos, para versiones antiguas 2000-2003 utiliza la extension  *.mdb y para las versiones recientes de access 2007-2010, utiliza *.accdb, esta clase, Access_connection.java, realiza la conexion para ambas versiones.

fin?

13 comentarios:

Anónimo dijo...

HOLA BUEN DIA.. MUY CHEVERE LA APLICAION.. ME PREGUNTO SI ME PUEDE ASESORAR CON UN PROGRAMA SIMILAR MI CORREO ES todorico1987@hotmail.com ... gracias

Anónimo dijo...

Es muy buen Blog Pero (Tu proyectos tienen fallas en general) y si vas a poner como descarga tus proyectos pon los completos y q se puedan descargar Ing.

Mouse dijo...

ok patrón ;)

Anónimo dijo...

Hola me ha servido mucho tu codigo fuente pero me marca errores podrias decirme porque? Soy primerisa en estas cuestiones te agradezco de antemano tu ayuda

Los errores que marca son estos
java.sql.SQLException: [Microsoft][Controlador ODBC Microsoft Access]Error general No se puede abrir la clave 'Temporary (volatile) Ace DSN for process 0xf84 Thread 0xda4 DBC 0x4ec8004 Jet' del Registro.
Exception in thread "main" java.lang.NullPointerException
at Prueba1.Access_connection.desconectar(Access_connection.java:51)
at Prueba1.Access_connection.main(Access_connection.java:72)

Anónimo dijo...

ey men, una pregunta, de antemano agradeciendo tu trabajo y apoyo, jaja....tengo winndows siete y no puedo conectar las bd por que son puedo "agendar" el DNS a los origenes de datos ODBC, tendras la respuesta a my problem, jajaj!!!, reiterando el agradecimiento por tu portal y ayuda...le_ose

mensajes claro dijo...

Muy buena aplicacion

Anónimo dijo...

Hola :D me sirvió mucho tu código muy buen ejemplo... saludos

alex

Anónimo dijo...

para agregar origenes ODBC en win 7 debes ir a la carpeta de windows y luego a la carpeta SysWOW64 y ejecutar el archivo odbcad32.exe

en win7 se invirtio el lugar donde se encuentran los archivos odbcad32.exe para 32 bits y 64 bits, es por eso que no te funciona el que esta en el panel de control, herramientas administrativas

Anónimo dijo...

Milly dijo:
descargue tu archivo pero no me funciona dice k no encuentra el driver para hacer la conexion con acces y aunque quiero agregar el diver mi maquina dice k no se han istalado el driver para acces k puesdo hacer

Pablo Fuentes dijo...

Muchas Gracias por tu aporte, fuiste de gran ayuda!!. Publico el mismo código pero sin los pequeños errores que se te fueron :P


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
*
* @author Pablo Fuentes
*/
public class ConexionDB {
//contraseña a la base de datos si es que tuviera, si no se deja vacio
private String password = "";
//nombre de la base de datos Acces con extension *.mdb o *.accdb
private String dbName = "TU_BASE_DE_DATOS.mdb";
//direccion de la base de datos
private String bd = System.getProperty("user.dir") + "\\" + dbName + ";PWD=" + password;
//driver para base de datos Access 2000, 2003, 2007, 2010
private String url = "jdbc:odbc:;DRIVER=Microsoft Access Driver (*.mdb, *.accdb);DBQ=" + bd;
Connection conn = null;

public void Access_connection() {
try{
//obtenemos el driver para Access
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//obtenemos la conexión
conn = DriverManager.getConnection(url);
//si la conexion tuvo exito
if (conn!=null){
System.out.println("Conexión a base de datos "+bd+". listo");
}
}catch( SQLException | ClassNotFoundException e){
System.out.println(e);
}
}

/**Permite retornar la conexión*/
public Connection getConnection(){
return conn;
}

//como dice su nombre, termina la conexion a la base de datos
public void desconectar(){
try {
conn.close();
//conn = null;
System.out.println("La conexion a la base de datos " + bd + " a terminado");
} catch (SQLException ex) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex);
}

}

}

Unknown dijo...

Hola, agradezco mucho que te tomes el trabajo de hacer este blog que es de gran ayuda, quisiera saber si tienes alguna entrada (yo no encontre ninguna), donde expliques la conexion a una bd remota (en otra pc o en un servidor web, ambas), muchas gracias de antemano

Camilo Tabares dijo...

Muchisimas Gracias tu código está fenomenal me sirvió de mucho... sigue publicando cosas así... Me gusta mucho tu blog... Saludos desde Colombia.

Anónimo dijo...

Hola, sabes como hay que hacer para que al crear el .jar y ejecutarlo funcione la conexión con la base de datos?

Post recomendado