Problème requête

thidenthi Messages postés 10 Date d'inscription lundi 17 juillet 2006 Statut Membre Dernière intervention 30 mars 2007 - 26 mars 2007 à 22:42
thidenthi Messages postés 10 Date d'inscription lundi 17 juillet 2006 Statut Membre Dernière intervention 30 mars 2007 - 30 mars 2007 à 23:26
bonjour
voila recemment j'ai installé le serveur IIS sur mon ordinateur.
J'ai cré une premiere page en html (un formulaire de saisie)
Quand on clique sur envoyer cela va sur une page "page.asp"
je veus que quand on clique sur envoyer ça cré un enregistrement dans une base de donnée access.

voici ma page asp:

const gcstrIdDb = ""
const gcstrPwDb = ""
gcstrAdresses="driver={Microsoft Access Driver (*.mdb)};dbq=" & request.ServerVariables("APPL_PHYSICAL_PATH") & "..\databases\adresses_new.mdb"   

    Set cnn = Server.CreateObject("ADODB.Connection")
    cnn.Open gcstrAdresses ,gcstrIdDb ,gcstrPwDb
    strDate=cstr(FormatDateTime(Date,0))
    strDate=mid(strDate,4,2) & "/" & mid(strDate,1,2) & "/" & mid(strDate,7)
    strSql = "INSERT INTO tblVisite VALUES (" & strDate  & "#);"
    cnn.execute strSql
    cnn.close

Quand j'execute cela me fait une erreur de ce type :

Erreur de compilation Microsoft VBScripterror '800a0401'

Fin d'instruction attendue

/iisHelp/common/500-100.asp, line 11

Dim objASPError, blnErrorWritten, strServername, strServerIP, strRemoteIP Dim strMethod, lngPos, datNow, strQueryString, strURL
--------------------------------------------------------------------------^

Microsoft OLE DB Provider for ODBC Driverserror '80004005'

[Microsoft][Pilote ODBC Microsoft
Access]Erreur générale Impossible d'ouvrir la clé de registre
'Temporary (volatile) Jet DSN for process 0x4e4 Thread 0x180 DBC
0x1f24024 Jet'.

/page.asp, line 11  << la ligne 11 correspond a ce code  cnn.Open gcstrAdresses ,gcstrIdDb ,gcstrPwDb

je précise que j'ai au préalable cré mon fichier mdb qui est dans le même répertoire que ma page.asp

Pouvez vous m'aidez s'il vous plait

Merci

18 réponses

SuperBouly Messages postés 410 Date d'inscription dimanche 1 février 2004 Statut Membre Dernière intervention 8 mai 2010
27 mars 2007 à 17:21
bonsoir,
Il semble que le gcstrAdresses n'est pas correct : essaie ...dbq=" & server.mapPath("MonCheminVirtuel")
avec MonCheminVirtuel="mabase.mdb" puisque elle est dans le même répertoire dis-tu.
@+Gilles
0
thidenthi Messages postés 10 Date d'inscription lundi 17 juillet 2006 Statut Membre Dernière intervention 30 mars 2007
27 mars 2007 à 19:17
merci maintenant ça marche mais je n'arrive pas à cré un enregistrement dans la base de donnée access.

voici mon formulaire:

<html>
<head>
<title>Formulaire ANIS</title>
</head>

<FORM METHOD= "POST" ACTION="page.asp">
<center> Formulaire 1/4 d'heure de télé assistance gratuit </center>

Nom :

<% =Server.HTMLEncode(Request.Form("txtnom"))%>">

Prénom :

<%=Server.HTMLEncode(Request.Form("txtprenom"))%>">

Téléphone :

<%=Server.HTMLEncode(Request.Form("txttelephone"))%>">

Code Postal :

<%=Server.HTMLEncode(Request.Form("txtcodepostal"))%>">

Ville :

<%=Server.HTMLEncode(Request.Form("txtville"))%>">

E-mail :

<%=Server.HTMLEncode(Request.Form("txtmail"))%>">

</FORM>

</html>

et ma page asp : (J'ai cré un objet Record set mais apparement la syntaxe n'est pas bonne)

<%

'connexion base de donnée

'création d'un objet de connection

Set conn = Server.CreateObject("ADODB.Connection")
connstring = "DBQ=" & Server.Mappath("base.mdb")&";Driver={Microsoft Access Driver (*.mdb)};"

conn.open connstring
'définit le Recordset
Set RS = Server.CreateObject("ADODB.Recordset")

'Ouvre le Recordset
RS.Open "table", conn, 1,2,2                          <<<<<<<<<<<<<<<C'est cette ligne qui comporte une erreur

RS.Addnew
RS.fields(nom)=Request.Form("txtnom")
RS.fields(prenom)=Request.Form("txtprenom")

'ajoute les données dans la base
RS.update

'on ferme et on supprime la conn et le rs
RS.Close
Set RS = Nothing
Conn.Close
Set Conn = Nothing
%> 
  

Pouvez vous m'aider Merci
0
SuperBouly Messages postés 410 Date d'inscription dimanche 1 février 2004 Statut Membre Dernière intervention 8 mai 2010
27 mars 2007 à 19:37
ola,
RS.Open "table", conn, 1,2,2   C'est quoi "table"  ?
et as -tu précisé ce que sont 1,2,2 ?
mets aussi un ";" pour finir, ça peut servir.
@+Gilles
0
thidenthi Messages postés 10 Date d'inscription lundi 17 juillet 2006 Statut Membre Dernière intervention 30 mars 2007
27 mars 2007 à 20:23
j'ai chercher de l'aide sur ce site et j'ai touver à cette adresse http://www.aspfr.com/tutoriaux/ASP-BASE-DONNEES-BASES-DONNEES-ACCESS-SQL_9.aspx

des informations.

RS.Open "table", conn, 1,2,2   pour ce qui est de "table" ,c'est le nom de ma table dans la base de donnée
et 1,2,2 je ne sais pas ce que c'est , je pense que c'est le positionnement dans la base de donnée , j'ai repris l'exemple du cours
http://www.aspfr.com/tutoriaux/ASP-BASE-DONNEES-BASES-DONNEES-ACCESS-SQL_9.aspx

Merci
@+ thidenthi
0

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

Posez votre question
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
27 mars 2007 à 20:53
Salut

Si tu fais la chose suivante, est-ce que cela fonctionne ?

<%
Dim sNom
Dim sPrenom
Dim sSQL

'Récupération des valeurs saisies
sNom = Trim("" & Request.Form("txtnom"))
sPrenom = Trim("" & Request.Form("txtprenom"))

'Contrôle si Nom et Prenom ont une valeur
If sNom<>"" And sPrenom<>"" Then

'Construction du sql
'Replace : je remplace les ' par des '' (2x ') sinon l'instruction SQL échoue
sSQL =" INSERT INTO TABLE (nom,prenom) values ('" & Replace(sNom,"'","''") & "','" & Replace(sPrenom,"'","''") & "')"

Set conn = Server.CreateObject("ADODB.Connection")
connstring = "DBQ=" & Server.Mappath("base.mdb")&";Driver={Microsoft Access Driver (*.mdb)};"
conn.open connstring
conn.Execute(sSQL)
Conn.Close
Set Conn = Nothing
Else
Response.write "Nom ou prénom manquant !
"
End if
%> 

yopyop
0
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
27 mars 2007 à 20:54
PS:

remplace TABLE par le nom de ta table ...

yopyop
0
thidenthi Messages postés 10 Date d'inscription lundi 17 juillet 2006 Statut Membre Dernière intervention 30 mars 2007
27 mars 2007 à 21:11
merci de ton aide
mais il me fait une erreur :

Erreur de compilation Microsoft VBScripterror '800a0401'

Fin d'instruction attendue

/iisHelp/common/500-100.asp, line 11

Dim objASPError, blnErrorWritten, strServername, strServerIP, strRemoteIP Dim strMethod, lngPos, datNow, strQueryString, strURL
--------------------------------------------------------------------------^

Microsoft OLE DB Provider for ODBC Driverserror '80040e14'

[Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe dans l'instruction INSERT INTO.

/page.asp, line 21

la ligne 21 correspond a l'éxecution de la requête sql, a ce qui me dit c'est une erreur de syntaxe
0
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
28 mars 2007 à 11:25
sSQL =" INSERT INTO TABLE (nom,prenom) values ('" & Replace(sNom,"'","''") & "','" & Replace(sPrenom,"'","''") & "')"



essayes:

sSQL="INSERT INTO TABLE (nom,prenom) values ('testnom','testprenom')"

est-ce que cela fonctionne ?

yopyop
0
thidenthi Messages postés 10 Date d'inscription lundi 17 juillet 2006 Statut Membre Dernière intervention 30 mars 2007
28 mars 2007 à 16:23
non cela fait une erreur :

Erreur de compilation Microsoft VBScripterror '800a0401'

Fin d'instruction attendue

/iisHelp/common/500-100.asp, line 11

Dim objASPError, blnErrorWritten, strServername, strServerIP, strRemoteIP Dim strMethod, lngPos, datNow, strQueryString, strURL
--------------------------------------------------------------------------^

Microsoft OLE DB Provider for ODBC Driverserror '80040e14'

[Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe dans l'instruction INSERT INTO.

/page.asp, line 23
0
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
28 mars 2007 à 17:52
re,

purrais-tu me donner

le nom de ta table
les noms des champs de ta table

yopyop
0
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
28 mars 2007 à 17:54
re,

pourrais tu me donner le nom de ta table ainsi que les noms de tes champs ?

yopyop
0
thidenthi Messages postés 10 Date d'inscription lundi 17 juillet 2006 Statut Membre Dernière intervention 30 mars 2007
28 mars 2007 à 19:02
le nom de ma table est "table" et voici mes champs >>>
0
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
28 mars 2007 à 22:08
re,

évites de mettre des accents dans le nom de tes champs et renomme ta table en PERSONNES par example....
est-ce que l'id s'incrémente toute seule ?
y a-t-il d'autres champs olbigatoires ?

Un bon moyen de tester est de faire l'insert directement dans Access...
Si tu exécute INSERT INTO [TABLE] (nom,prénom) values ('testnom','testprenom') directement dans Access et que cela ne fonctionne pas, tu as certainement d'autres champs obligatoires

si tu veux, tu peux faire un zip de ta page asp et de ta base de données et me l'envoyer

yopyop
0
thidenthi Messages postés 10 Date d'inscription lundi 17 juillet 2006 Statut Membre Dernière intervention 30 mars 2007
29 mars 2007 à 22:42
L'id c'est la clé primaireet j'ai modifier ma requête je pense être pas très loin du but.

sSQL = "insert into personne (nom,prenom) values(sNom,sPrenom);"

il m fait une erreur il me met ceci:

Erreur de compilation Microsoft VBScripterror '800a0401'

Fin d'instruction attendue

/iisHelp/common/500-100.asp, line 11

Dim objASPError, blnErrorWritten, strServername, strServerIP, strRemoteIP Dim strMethod, lngPos, datNow, strQueryString, strURL
--------------------------------------------------------------------------^

Microsoft OLE DB Provider for ODBC Driverserror '80040e10'

[Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 2 attendu.

/page.asp, line 25
0
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
29 mars 2007 à 22:48
re,

le mieux serait que tu m'envoies un zip avec ta base et tes pages asp...

yopyop
0
thidenthi Messages postés 10 Date d'inscription lundi 17 juillet 2006 Statut Membre Dernière intervention 30 mars 2007
29 mars 2007 à 23:00
oki
merci de ton aide
voici le fichier zip>>ICI
page.asp c'est ma premiere page
page2.asp c'est ma 2e page d'essai en utilisant un objet record set
et 1.asp c'est le formulaire
et ma base base.mdb

merci
0
thidenthi Messages postés 10 Date d'inscription lundi 17 juillet 2006 Statut Membre Dernière intervention 30 mars 2007
30 mars 2007 à 23:24
0
thidenthi Messages postés 10 Date d'inscription lundi 17 juillet 2006 Statut Membre Dernière intervention 30 mars 2007
30 mars 2007 à 23:26
desolé du message précedent mais apparement il n'as pas marché
j'ai testé avec l'objet record set et il m'as affiché ceci:

[Microsoft][Pilote ODBC Microsoft Access] Mise à jour impossible. La base de données ou l'objet est en lecture seule.

comment peut-on modifier les droits d'acces à la base

merci
a bientôt
0
Rejoignez-nous