1

Bonjour, je cherche à requeter sur une BD access via java. Mais j'ai des problèmes de connexion. Ma BD est sur un serveur et mon applet (qui doit s'y connecter) est sur le même serveur.
J'ai trouvé une méthode de connection sans devoir utiliser un lien OBDC (car je n'ai pas vraiment accès au serveur où est ma BDD). Mais voici l'erreur que j'ai :

java.sql.SQLException: [Microsoft][Pilote ODBC Microsoft Access]Erreur générale Impossible d'ouvrir la clé de registre 'Temporary (volatile) Jet DSN for process 0xb0c Thread 0x5e0 DBC 0x335802c Jet'.

Voici mon code :

try {
             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
             this._url = "jdbc:odbc:Driver={Microsoft Access Driver(*.mdb)};DBQ=./BaseReporting.mdb";
             this._con = DriverManager.getConnection(this._url,"","");
 
    	} catch(java.lang.ClassNotFoundException e){
    		System.err.println("Driver non chargé");
    		e.printStackTrace();
    	} catch(SQLException e){
    		System.err.println("Probleme de connection a la base");
    		e.printStackTrace();
    	}
}


Merci de votre aide

2

Heu a priori c'est bon j'ai réussi a me connecter... Mais je suis face à un problème bcp plus génant. Je fais mes requetes sur des vue d'access dont certaines sont calculées a partir de procédures stockées. Quand j'execute mes requetes sur ces vues voila ce que java me réponds :

java.sql.SQLException: [Microsoft][Pilote ODBC Microsoft Access] Fonction 'TempsOuvre' non définie dans l'expression.
    at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
    at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
    at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3111)
    at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
    at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:253)


Quelqu'un sait il comment pallier à ca ?

3

4

Merci de ta réponse squalyl

TempsOuvre est une fonction VBA (que j'ai écrite) interne a Access et qu'Access utilise quand il fait une requete ...

Je fais une vue sous access du style :

CREATE view vue1 as
SELECT TempsOuvre(date1,date2) as nbJourOuvre FROM TABLEDATES WHERE ....



Et moi en java j'attaque cette vue :

SELECT nbJourOuvre FROM vue1
et java me sort cette exception ... rage

.... C'est tout le problème, java ne la reconnait pas.
Comment faire pour qu'il la reconnaisse ?

5

attention une vue et une procédure VBA c'est pas du tout pareil (d'après ce que je peux imaginer, je pratique pas ce genre de code)

Si c'est une vue, exécute d'abord (en java) la requete de creation de la vue avant de faire la requete qui l'utilise non?

si c'est VBA, aucune idée, je sis pas si les fichiers MDB les stockent, ni si ODBC est capable de les réutiliser.

Il me semble qu'il y a une catégorie du forum sur les bases de données, pose ta question là bas, t'auras ptet plus de réponses.

6

Oui je vais aller poster la bas.

La vue et la procédure VBA ne sont pas la même chose. C'est juste que j'utilise une prodédure VBA pour construire ma vue dans Access. Apres je requete en java sur cette vue...

En tous cas merci pour tes réponses !

7

bonjour, sos debutant en prog rencontre prob debil.stop. priere fournir code ajout sur base access avec formulaire.stop. ex: champ code et champ nom .stop. couic ,sur serveur local IIS.stop.

j'ai crée la dsn, j'ai taper la requête sql j'ai rien oublié mais nada (j'ai peut etre tapé trop fort qui c) voici le code help plz:
<form action="ajouter.asp" method=post>

entrez le code : <input type="text" name="code"><br>

entrez le nom :<input type="text" name="nom"><br>

<input type="submit" value="enregistrer">

<%
' Création de l'objet permettant la connexion
Set Conn = Server.CreateObject("ADODB.Connection")
' Connexion
Conn.Open "DSN=amine;database='C:\mabase.mdb';"

y=" insert into tab values("
y=y & request.form("code") & ","
y=y & "'" & request.form("nom") & ")"

Conn.execute(y)
%>
</form>

avec pratiqement le meme code a part la var y j'arrive a affiher le contenu de la base surr une autre page

signature

8

Heu! Stop. Pas connaitre ce langague Stop. Semble être ASP mais ici section JAVA. Stop.
Prière poster dans la section appropriée. Merci. Stop.
avatar