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. 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 !!!!!!
    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)'.
      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".
        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)
          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, ...