Connecter base Access à Java

corentin.93 Messages postés 1681 Date d'inscription   Statut Membre Dernière intervention   -  
 xloadx -
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. geniusccm Messages postés 8 Statut Membre 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
  2. leen.net Messages postés 247 Statut Membre 13
     
    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
  3. geniusccm Messages postés 8 Statut Membre 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
  4. leen.net Messages postés 247 Statut Membre 13
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. xloadx
     
    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