Récupérer une valeur d' Access via un codage Javascript

Résolu
mareuh Messages postés 6 Date d'inscription mercredi 17 décembre 2008 Statut Membre Dernière intervention 18 décembre 2008 - 17 déc. 2008 à 16:00
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 - 18 déc. 2008 à 12:45
Bonjour, je suis novice en progarmmation javascript, et j'ai besoin de dévélopper une application en javascript qui récupère des données dans une base de données Access 2003. j'ai pour cela créer mon ODBC nomer "Test Com.mdb". seulement, je ne parvient pas à communiquer avec ma base de données.
Ma base de données contient une table nomée "Bloc1", un champ nommé "Pos1" et une clé de registre nommée"NomBloc".

voici mon code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html>

<head>
<Class.forName("JBDC-OBDC");>
<Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();>
<Connection con = DriverManager.getConnection(Test com.mdb);>

<script type="text/javascript">
function requete ()
{ var result "SELECT Pos1 FROM Bloc1 WHERE NomBloc'TOTO' " ;
alert (result);
}
</script>
</head>


<!-- Affiche le bouton "Requete" //-->


</html>

quelqu'un peut'il m'aider ?? SVP

8 réponses

Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 14
17 déc. 2008 à 18:10
bonjour,
euh...
<Class.forName("JBDC-OBDC");>
<Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();>
<Connection con = DriverManager.getConnection(Test com.mdb);>
c'est quoi ? quel langage ?
ni du javascript, ni du html... si ?

en javascript ça ressemblerait plutôt à :
var db =new ActiveXObject( "ADODB.Recordset" );
var driver = "Driver={Microsoft Access Driver (*.mdb)};";
var connect = driver + "DBQ=adresse de la base de données" ;
ici c'est l'exemple pour access 2000, mais bon...
@+
3
mareuh Messages postés 6 Date d'inscription mercredi 17 décembre 2008 Statut Membre Dernière intervention 18 décembre 2008
18 déc. 2008 à 08:20
Effectivement, j'ai tendance à mélanger un peu tous les languages . j'ai plus l'habitude du V.B.
je te remercie de ta réponse, mais à présent c'est ma fonction select qui n'est pas correct.
quelqu'un à une proposition à me faire ?

Merci d'avance à tous..
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 14
18 déc. 2008 à 09:35
bah.. tu ne l'envoies pas ?
comment peux-tu dire que c'est incorrect ?
dans la lignée de mon exemple :
var sql = "SELECT * FROM nom_table WHERE nom_champ='"+valeur+"'";
db.Open(sql,connect);
@+
0
mareuh Messages postés 6 Date d'inscription mercredi 17 décembre 2008 Statut Membre Dernière intervention 18 décembre 2008
18 déc. 2008 à 11:24
Merci pour ton aide Bul3, voici à présent mon code :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html>
<head>


<SCRIPT language="Javascript">
<!--  var sql ; // -->
</SCRIPT>
<script type="text/javascript"> 
function requete () { 
    var db =new ActiveXObject( "ADODB.Recordset" ); 
    var driver = "Driver={Microsoft Access Driver (Test com.mdb)};" ; 
    var connect = driver + "DBQ=Test db com.mdb" ; 
    sql = "SELECT Pos1 FROM Bloc1 WHERE NomBloc=' TOTO ' "; 
    db.Open(sql,connect);
    alert (sql);
 }
</script>
</head>

<!--  Affiche le bouton     //-->

</html>

à présent, j'ai le défaut  "Source de donnée introuvable, et nom de pilote non spécifié".
je ne vois pas ou est l'erreur !
pour info, je fichier Test db com.mbd est à la même racine que mon code html.
je ne vois pas de quelle manière je doit coder le chemin de ma base et de mon driver...     
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 14
18 déc. 2008 à 11:30
euh..
>>Source de donnée introuvable, et nom de pilote non spécifié
c'est texto l'explication.

ce que j'ai montré c'est pour access 2000, en local.
probable que pour ton access 2003 sur le serveur,
ce n'est pas tout à fait la même chose.

et déjà, var driver = "Driver={Microsoft Access Driver (*.mdb)};";

c'est bien *.mdb et pas le nom de la base qui sera donné dans le connect.

         
0
mareuh Messages postés 6 Date d'inscription mercredi 17 décembre 2008 Statut Membre Dernière intervention 18 décembre 2008
18 déc. 2008 à 12:31
Merci Bul, efectivement, c'est mieux. une dernière question après je pense que je vais y arriver :
connect = driver + "DBQ=Test db com.mdb" ;

je met quoi après "DBQ= ????" ?
je ne sais pas trop quoi lui dire...
merci

PS: Très sympa ton site, j'y plein de choses intéressante sur le javascript
0
mareuh Messages postés 6 Date d'inscription mercredi 17 décembre 2008 Statut Membre Dernière intervention 18 décembre 2008
18 déc. 2008 à 12:32
pour info, ma base de donnée est stockée sur mon disque, et pas sur un serveur.
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 14
18 déc. 2008 à 12:45
>>je met quoi après "DBQ= ????" ?
le chemin + le nom de ta base de données....
ch'tiot exemple ici

comme la base est dans le même répertoire que le .hta,
et le nom s'en tire, j'use de :
    var fso=new ActiveXObject("Scripting.FileSystemObject");
    var url=unescape(self.location.pathname);
    var adr=(fso.GetExtensionName(url).toLowerCase()!='hta')?1:0;
    var dir=fso.GetParentFolderName(url).substr(adr);
    var base=dir + "\" + fso.GetBaseName(url) + ".mdb";
    var db =new ActiveXObject( "ADODB.Recordset" );
    var driver = "Driver={Microsoft Access Driver (*.mdb)};";
    var connect = driver + "DBQ="+base ;

         
0