Probleme de modification d'un champs d'une base access.

Signaler
Messages postés
32
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
28 mars 2006
-
Messages postés
32
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
28 mars 2006
-
Bonjour

J'ai une page asp qui me permet de modifier un enregistrement dans une base access, mais lorsque je l'utilise elle ne fait pas la modification de l'enregistrement mais me supprime le contenu.

Si quelqu'un connaît la solution??

D'avance merci

12 réponses

Messages postés
586
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 février 2010
1
salut,

peux-tu poster ton code?

yopyop
Messages postés
32
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
28 mars 2006

salut

La modif se fait en trois pages
1ere page je liste toutes les plantes de ma base
2eme page je modifie les champs
3eme page je fais un UPDATE


Voici la 3eme page==>


RefPla=Request.Form("RefPla")


NomLatinbis=Request.Form("NomLatin-bis")


NomFrancaisbis=Request.Form("NomFrancais_bis")


Refpla=CINT(RefPla)


NomLatinbis=Replace(lot_bis,"'","''")


NomLatinbis=Replace(lot_bis,"<","&lt")


NomLatinbis=Replace(lot_bis,">","&gt")


NomFrancaisbis=Replace(sponsor_bis,"'","''")


NomFrancaisbis=Replace(sponsor_bis,"<","&lt")


NomFrancaisbis=Replace(sponsor_bis,">","&gt")%>


DSN_BASE = "DBQ=" & Server.Mappath("/fpdb/Nouvelle plante.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};Driverld=25"%>


Set Conn = Server.CreateObject("ADODB.Connection")


Conn.Open DSN_BASE


Set Rs = Server.CreateObject("ADODB.Recordset")%>


RequeteSQL = "Update Résultats Set NomLatin='"&NomLatinbis&"',NomFrancais='"&Nomfrancaisbis&"' WHERE ref_Pla=" & RefPla


Rs.Open RequeteSQL , Conn%>


Set Rs = Nothing


Conn.Close


Set Conn = Nothing%>


<HTML>


<head>


<meta http-equiv=
"Content-Type" content="text/html; charset=windows-1252"
>


<meta name=
"GENERATOR" content="Microsoft FrontPage 4.0"
>


<meta name=
"ProgId" content="FrontPage.Editor.Document"
>


<title>
Marathon2000 - asp-irine.com : Validation de la modification du lot
</title>


</head>





"center">


Merci! La plante <%=NomLatinbis%>



a bien été modifié!




[Default.htm


retour page d'accueil]








</html>
Messages postés
32
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
28 mars 2006

salut

La modif se fait en trois pages
1ere page je liste toutes les plantes de ma base
2eme page je modifie les champs
3eme page je fais un UPDATE


Voici la 3eme page==>


RefPla=Request.Form("RefPla")


NomLatinbis=Request.Form("NomLatin-bis")


NomFrancaisbis=Request.Form("NomFrancais_bis")


Refpla=CINT(RefPla)


NomLatinbis=Replace(lot_bis,"'","''")


NomLatinbis=Replace(lot_bis,"<","&lt")


NomLatinbis=Replace(lot_bis,">","&gt")


NomFrancaisbis=Replace(sponsor_bis,"'","''")


NomFrancaisbis=Replace(sponsor_bis,"<","&lt")


NomFrancaisbis=Replace(sponsor_bis,">","&gt")%>


DSN_BASE = "DBQ=" & Server.Mappath("/fpdb/Nouvelle plante.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};Driverld=25"%>


Set Conn = Server.CreateObject("ADODB.Connection")


Conn.Open DSN_BASE


Set Rs = Server.CreateObject("ADODB.Recordset")%>


RequeteSQL = "Update Résultats Set NomLatin='"&NomLatinbis&"',NomFrancais='"&Nomfrancaisbis&"' WHERE ref_Pla=" & RefPla


Rs.Open RequeteSQL , Conn%>


Set Rs = Nothing


Conn.Close


Set Conn = Nothing%>


<HTML>


<head>


<meta http-equiv=
"Content-Type" content="text/html; charset=windows-1252"
>


<meta name=
"GENERATOR" content="Microsoft FrontPage 4.0"
>


<meta name=
"ProgId" content="FrontPage.Editor.Document"
>


<title>
Marathon2000 - asp-irine.com : Validation de la modification du lot
</title>


</head>





"center">


Merci! La plante <%=NomLatinbis%>



a bien été modifié!




[Default.htm


retour page d'accueil]








</html>
Messages postés
32
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
28 mars 2006

salut

La modif se fait en trois pages
1ere page je liste toutes les plantes de ma base
2eme page je modifie les champs
3eme page je fais un UPDATE


Voici la 3eme page==>


RefPla=Request.Form("RefPla")


NomLatinbis=Request.Form("NomLatin-bis")


NomFrancaisbis=Request.Form("NomFrancais_bis")


Refpla=CINT(RefPla)


NomLatinbis=Replace(lot_bis,"'","''")


NomLatinbis=Replace(lot_bis,"<","&lt")


NomLatinbis=Replace(lot_bis,">","&gt")


NomFrancaisbis=Replace(sponsor_bis,"'","''")


NomFrancaisbis=Replace(sponsor_bis,"<","&lt")


NomFrancaisbis=Replace(sponsor_bis,">","&gt")%>


DSN_BASE = "DBQ=" & Server.Mappath("/fpdb/Nouvelle plante.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};Driverld=25"%>


Set Conn = Server.CreateObject("ADODB.Connection")


Conn.Open DSN_BASE


Set Rs = Server.CreateObject("ADODB.Recordset")%>


RequeteSQL = "Update Résultats Set NomLatin='"&NomLatinbis&"',NomFrancais='"&Nomfrancaisbis&"' WHERE ref_Pla=" & RefPla


Rs.Open RequeteSQL , Conn%>


Set Rs = Nothing


Conn.Close


Set Conn = Nothing%>


<HTML>


<head>


<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"
>


<meta name="GENERATOR" content="Microsoft FrontPage 4.0"
>


<meta name="ProgId" content="FrontPage.Editor.Document"
>


<title>Marathon2000 - asp-irine.com : Validation de la modification du lot
</title>


</head>





"center">


Merci! La plante <%=NomLatinbis%>



a bien été modifié!




[Default.htm


retour page d'accueil]








</html>
Messages postés
586
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 février 2010
1
re,

est-tu sur que tes valeurs sont pleines à ce moment.
fais un response.write RequeteSQL au lieu d'exécuter ta requête pour voir la tête qu'elle a.

PS:

Tu n'as pas besoin de faire Refpla=CINT(RefPla) et si tu le fais il vaut mieux faire avant
RefPla=Trim("" & Request.Form("RefPla"))

NomFrancaisbis=Replace(sponsor_bis,"<","&lt")

NomFrancaisbis=Replace(sponsor_bis,">","&gt")
A la place tu peux faire
NomFrancaisBis=Server.HTMLEncode("" & sponsor_bis)

Il vaut mieux éviter les nom avec des accens pour les bases de données. (table Résultats)
yopyop
Messages postés
32
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
28 mars 2006

Voila ce qui s'affiche avec response.write RequeteSQL :

False
Erreur de compilation Microsoft VBScript error '800a0401'


Fin d'instruction attendue


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


Dim objASPError, blnErrorWritten, strServername, strServerIP, strRemoteIP Dim strMethod, lngPos, datNow, strQueryString, strURL
--------------------------------------------------------------------------^
ADODB.Recordset error '800a0bb9'


Les arguments sont de type incorrect, en dehors des limites autorisées ou en conflit les uns avec les autres.


/traitement_modif.asp, line 25

Mais valeurs NomLatin et NomFrancais sont pleines.
Messages postés
586
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 février 2010
1
C'est bizard que tu n'arrives pas à afficher la requête non ?

Enlèves Refpla=CINT(RefPla)

yopyop
Messages postés
32
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
28 mars 2006

Enlever
toujours meme probleme
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
2
Salut

Pourquoi pas :


RequeteSQL = "Update Résultats Set NomLatin='"&NomLatinbis&"',NomFrancais='"&Nomfrancaisbis&"' WHERE ref_Pla=" & RefPla & " "

Conn.Execute(RequeteSQL)

au lieu de


Set Rs = Server.CreateObject("ADODB.Recordset")%>


RequeteSQL = "Update Résultats Set NomLatin='"&NomLatinbis&"',NomFrancais='"&Nomfrancaisbis&"' WHERE ref_Pla=" & RefPla


Rs.Open RequeteSQL , Conn

Set Rs = nothing

on sait jamais...

@+++

Nurgle
C'est une grande folie que de vouloir être sage tout seul !
Messages postés
32
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
28 mars 2006

Salut

Je n'ai plus de message d'erreurs.

Mais les champs qui on étaient mis à jour son vide, l'UPDATE supprime les données.

Si quelqu'un connaît la solution????

Merci
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
2
tu es vraiment sûr que tes variables sont pleines ?

le Response.Write(Requete SQL) donne quoi ?

ou même un Response.Write(NomLatinbis & " " & Nomfrancaisbis & " " & RefPla)






Nurgle
C'est une grande folie que de vouloir être sage tout seul !
Messages postés
32
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
28 mars 2006

Merci

Cela fonctionne correctement!!!!!!!