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

Signaler
Messages postés
6
Date d'inscription
mercredi 17 décembre 2008
Statut
Membre
Dernière intervention
18 décembre 2008
-
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
-
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

Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
8
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...
@+
Messages postés
6
Date d'inscription
mercredi 17 décembre 2008
Statut
Membre
Dernière intervention
18 décembre 2008

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..
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
8
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);
@+
Messages postés
6
Date d'inscription
mercredi 17 décembre 2008
Statut
Membre
Dernière intervention
18 décembre 2008

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...     
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
8
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.

         
Messages postés
6
Date d'inscription
mercredi 17 décembre 2008
Statut
Membre
Dernière intervention
18 décembre 2008

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
Messages postés
6
Date d'inscription
mercredi 17 décembre 2008
Statut
Membre
Dernière intervention
18 décembre 2008

pour info, ma base de donnée est stockée sur mon disque, et pas sur un serveur.
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
8
>>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 ;