Connecter base Access à Java

[Fermé]
Signaler
Messages postés
1726
Date d'inscription
dimanche 20 mai 2007
Statut
Membre
Dernière intervention
19 décembre 2015
-
 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

Messages postés
8
Date d'inscription
mardi 8 novembre 2011
Statut
Membre
Dernière intervention
23 octobre 2012
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, ...
Messages postés
212
Date d'inscription
lundi 31 janvier 2011
Statut
Membre
Dernière intervention
14 mai 2014
14
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)
Messages postés
8
Date d'inscription
mardi 8 novembre 2011
Statut
Membre
Dernière intervention
23 octobre 2012
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".
Messages postés
212
Date d'inscription
lundi 31 janvier 2011
Statut
Membre
Dernière intervention
14 mai 2014
14
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)'.
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 !!!!!!