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

Messages postés
6
Date d'inscription
mercredi 17 décembre 2008
Dernière intervention
18 décembre 2008
- - Dernière réponse : Bul3
Messages postés
4934
Date d'inscription
samedi 1 juillet 2006
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
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
4934
Date d'inscription
samedi 1 juillet 2006
Dernière intervention
2 février 2015
3
Merci
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...
@+

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de Bul3
Messages postés
6
Date d'inscription
mercredi 17 décembre 2008
Dernière intervention
18 décembre 2008
0
Merci
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..
Commenter la réponse de mareuh
Messages postés
4934
Date d'inscription
samedi 1 juillet 2006
Dernière intervention
2 février 2015
0
Merci
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);
@+
Commenter la réponse de Bul3
Messages postés
6
Date d'inscription
mercredi 17 décembre 2008
Dernière intervention
18 décembre 2008
0
Merci
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...     
Commenter la réponse de mareuh
Messages postés
4934
Date d'inscription
samedi 1 juillet 2006
Dernière intervention
2 février 2015
0
Merci
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.

         
Commenter la réponse de Bul3
Messages postés
6
Date d'inscription
mercredi 17 décembre 2008
Dernière intervention
18 décembre 2008
0
Merci
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
Commenter la réponse de mareuh
Messages postés
6
Date d'inscription
mercredi 17 décembre 2008
Dernière intervention
18 décembre 2008
0
Merci
pour info, ma base de donnée est stockée sur mon disque, et pas sur un serveur.
Commenter la réponse de mareuh
Messages postés
4934
Date d'inscription
samedi 1 juillet 2006
Dernière intervention
2 février 2015
0
Merci
>>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 ;

         
Commenter la réponse de Bul3

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.