Connecter base Access à Java

Bonjour,

J'ai un souci lorsque je veux me connecter à une base de données faite avec Access, dont le format est .accdb, avec Java, via l'ODBC.

En effet, lorsque j'utilise le code ci-dessous, une exception est levée à la deuxième ligne du try, donc je suppose qu'il y a un souci au niveau de l'url, mais je ne vois pas lequel...
La base de donnée est enregistrée dans l'ODBC de windows sous le nom test

public static void main(String[] args) throws ClassNotFoundException, SQLException{
Connection con = null;

String url = "jdbc:odbc:test";
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection(url,"","");
Statement req = (Statement) con.createStatement();
ResultSet resultatDest = req.executeQuery("select OP from Principale");

}
catch(Exception e) { System.out.println("Exception"); }

}

5 réponses

  1. Salut, pour le format ".accdb" j'y ignore comment faire mais sinon pour le ".mdb" (Ms access 2003) voici un source:

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    
    public class Main {
    
    	public static void main(String[] args) throws ClassNotFoundException, SQLException{
    		Connection con = null;
    
    		String url = "jdbc:odbc:DRIVER=Microsoft Access Driver (*.mdb); DBQ=test.mdb";
    		try
    		{
    		Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    		con = DriverManager.getConnection(url,"","");
    		Statement req = (Statement) con.createStatement();
    		ResultSet resultatDest = req.executeQuery("select OP from Principale");
    
    
    		}
    		catch(Exception e) { System.out.println(e.toString()); }
    
    		}
    
    }

    Tu peux tjrs convertir ta BDD en MS 2003 avec Ms office access 2007, ...
    0
    1. moi j'ai le même problème,
      j'ai essaye le code que geniusccm a ecrit mais ...... quelle est la faute?

      import java.sql.*;
      
      public class db {
          public static void main(String[] args) throws ClassNotFoundException, SQLException{
              Connection con =null;
              String url= "jdbc:odbc:DRIVER=Microsoft Access Driver (*.mbd); DBQ= learn.mbd";
              try
      		{
      		Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      		con = DriverManager.getConnection(url,"","");
      		Statement req = (Statement) con.createStatement();
      		ResultSet resultatDest = req.executeQuery("select ID from essai");
      
      
      		}
      		catch(Exception e) { System.out.println(e.toString()); }
      
      		}
      }


      et c'est le résultat:
      java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
      BUILD SUCCESSFUL (total time: 2 seconds)
      0
      1. Salut leen.net,
        Le problème avec ton code est au niveau de l'extension du nom de ta BDD dans le String de l'url; tu as écrit "learn.mbd" au lieu de "learn.mdb".
        0
        1. oui tu as raison,
          mais il m'affiche encore ce message d'erreur:
          java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Could not find file '(unknown)'.
          0
          1. Même le sujet n'est plus d'actualité, voilà comment il faut formuler le chemin vers la base de données.

            Exemple:


            String URL = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=N:\\ESPACE DE TRAVAIL\\Dossier Contenant La Base\\BaseExemple.mdb";


            Faites bien attention aux slashes doublés surtout c'est important !!!!!!
            0