Mise a jour bdd Access

Signaler
Messages postés
489
Date d'inscription
mardi 16 novembre 2004
Statut
Membre
Dernière intervention
22 novembre 2007
-
Messages postés
489
Date d'inscription
mardi 16 novembre 2004
Statut
Membre
Dernière intervention
22 novembre 2007
-
Bonjour a tous

qq peut-il me dire pourquoi mon update ne march pa?


<%
idlog = Session("idlog")


' connexion
Set Conn = server.CreateObject ("ADODB.connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\Inetpub\wwwroot\base.mdb"
sql = "SELECT * FROM T1 WHERE idlog like '" & idlog & "'"
Set Rsbase = Server.CreateObject("ADODB.Recordset")
Rsbase.Open sql, Conn, 3, 3



Action = Left(UCase(Request("Valider")),5)
If Action="ENVOY" Thensql2 "UPDATE T1 SET K1 '" & K1 & "' , K2 = '" & K2 & "'"


conn.Execute(sql2)


End If


%>


Merci car il n'y a pas de mesage d'erreur mais ca ne fait rien

++

24 réponses

Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Bonjour
Action = Left(UCase(Request("Valider")),5)
response.write(Action)
Ca te permettra déjà de vérifier si ton test est bon

Cordialement
Roro webDev
Messages postés
489
Date d'inscription
mardi 16 novembre 2004
Statut
Membre
Dernière intervention
22 novembre 2007

Ben , disons que je né jamé compri ou ece kon voyé cett donné response.write.....

Enfin ce ne change rien qd je lance, di moi ou y fo ke je regarde stp


++
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Bonjour

Sur l'écran !
Si , à l'affichage de ta page tu ne vois pas marqué quelquepart "ENVOY", c'est que ton request("valider") ne contient pas ce que tu crois, et donc que ton update n'est pas executé
CQFD
au fait, c'est quoi, ce request("valider") ? la value du boutton submit ? C'est un petit peu dangereux d'opérer ainsi, à mon avis

Cordialement
Roro webDev
Messages postés
489
Date d'inscription
mardi 16 novembre 2004
Statut
Membre
Dernière intervention
22 novembre 2007

A vrai dire, j'avé vu ca dans un bout de code qur j'ai pris sur ce site mais je ne comprné pa tro tro
Ben non, rien ne s'affich a l'ecran dc ca s'execute pas

Comment dire que ca doi s'executer si j'appui sur le bouton??

Merci


++
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Bonjour

Ben en principe, sur ta première page, tu as un formulaire avec tes champs de saisie et un bouton submit. Celui-ci envoie automatiquement le formulaire à la deuxième page (celle qui est définie dans la propriété action du formulaire de la première page). Donc, en théorie, tu n'as rien à faire, et surtout pas tester la valeur du bouton, car demain tu peux préférer afficher "Enregistrer" au lieu d'"envoyer", et ta page ne marchera plus !

Cordialement
Roro webDev
Messages postés
489
Date d'inscription
mardi 16 novembre 2004
Statut
Membre
Dernière intervention
22 novembre 2007

Oui mé si je ne met rien, les donné de ma page sont enregistré avan que je ne puiss les modifié et donc ca ne ser plu a rien


++
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Bonjour

???
Tu as deux pages, je suppose. Une avec ton formulaire, ou tu saisis tes données, l'autre ou il y a le code que tu montres, non ?

Cordialement
Roro webDev
Messages postés
489
Date d'inscription
mardi 16 novembre 2004
Statut
Membre
Dernière intervention
22 novembre 2007

Oui g bien 2pages
Dc ya le formulaire principal et cett petite partie qui contien 2champs du formulaire principal que je peux modifié mé je n'arrive pas a les re enregistré dan la base car il ont deja une valeur qd j'arriv sur cett page.

Il fodré que qd je les modifie, ca ecrase les valeur d'avan, tu voi??


++
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Bonjour

Ben je vois pas trop où est le problème !

page1 :
<form action="page2.asp">



</form>

page2:

Set Conn = server.CreateObject ("ADODB.connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\Inetpub\wwwroot\base.mdb"
K1=request("K1")
K2=request("K2")
sql2 "UPDATE T1 SET K1 '" & K1 & "' , K2 = '" & K2 & "'"
conn.Execute(sql2)

Si ça, ça marche pas ...Quelque soient les valeurs précédentes, puisque l'update les écrase

Cordialement
Roro webDev
Messages postés
489
Date d'inscription
mardi 16 novembre 2004
Statut
Membre
Dernière intervention
22 novembre 2007

En fait si tu ve, jt'expliqu tou, g 3pages :
la 1ere c une page d'identification et par raport a son num, le formulaire principal lui redonn ses valeur K1 et K2 ki été stocké dan sa base depui la foi d'avan..sil ve les modifié, il est redirigé vers ma page 2, c a dir cell ki contien juste les 2champ que l'on va modifié et vu ke dan mon formulaire principal, K1 et K2 sont direcetemen pri de la base, il fo ke les nouvel donné soi actualisé dan la base et la, qd je met comm tu me di, ben ca me di "kil est impossibl de trouvé l'objet demandé"

page1.asp
<%


idlog = Request("idlog")


' connexion
Set Conn = server.CreateObject ("ADODB.connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\Inetpub\wwwroot\base.mdb"
sql = "SELECT * FROM T1 WHERE idlog like '" & idlog & "'"
Set Rsbase = Server.CreateObject("ADODB.Recordset")
Rsbase.Open sql, Conn, 3, 3



' vérification de l'existence d'un compte :
if Rsbase.recordcount < 1 then


' s'il n'y en a pas :
Rsbase.Close
sql2 = "SELECT * FROM T1"
Rsbase.Open sql2, Conn, 3, 3


' création de l'enregistrement
Rsbase.Addnew
Rsbase("idlog") = Request("idlog")
Rsbase("K1") = "0"
Rsbase("K2") = "0"
Rsbase.Update


else
end if


%>
<%
Session("idlog") = rsbase("idlog")
%>

avec value K1=<%Rsbase("K1")%> et pareil pr K2

et ma page 2, tu la deja

Jesper ke ti verra plu clair pr m'aidé


++
Messages postés
489
Date d'inscription
mardi 16 novembre 2004
Statut
Membre
Dernière intervention
22 novembre 2007

non en fait qd je fé comm tu me di, ca effac les doné de ma base et c tou, ca ne remet rien a la place


++
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Bonjour


Si ça efface les données dans ta base, c'est que l'update fonctionne, mais que K1 et K2 ne sont pas transmis.
Fait :
response.write(sql2) pour t'en assurer.
A tous les coups, tu vas avoir :UPDATE T1 SET K1 '' , K2 '''

Cordialement
Roro webDev
Messages postés
489
Date d'inscription
mardi 16 novembre 2004
Statut
Membre
Dernière intervention
22 novembre 2007

En effet g bien K1 et K2 = "
comen se fesse?


++
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Bonjour

ça se fesse qu'il y a un problème de passage des valeurs d'une page à l'autre.
T'as pas eu le problème, déjà, récemment ?
Là, faudrait voir tes sources au complet, pour savoir !

Cordialement
Roro webDev
Messages postés
489
Date d'inscription
mardi 16 novembre 2004
Statut
Membre
Dernière intervention
22 novembre 2007

Regarde mon code :
<%
idlog = Session("idlog")


' connexion
Set Conn = server.CreateObject ("ADODB.connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\Inetpub\wwwroot\base.mdb"
sql = "SELECT * FROM T1 WHERE idlog like '" & idlog & "'"
Set Rsbase = Server.CreateObject("ADODB.Recordset")
Rsbase.Open sql, Conn, 3, 3



K1=Rsbase("K1")
K2=Rsbase("K2")


Response.Write(K1)
Response.Write(K2)


sql2 "UPDATE T1 SET K1 '" & K1 & "' , K2 = '" & K2 & "' WHERE idlog = '" & idlog &"'"


conn.Execute(sql2)
Response.write(sql2)
%>

et la K1 et K2 ont bien les valeurs de la base mé ce né pa utile pr moi car je ve kil prenn les valeur de mes champ une foi modifié

Oui g deja eu des probleme comm ca pr faire passé des donné de ma page 1 a ma page 2, ca ne ve pas, je ne sais pa pourquoi

alor que de la page 2 a la page 1, pa de probleme


++
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Bonjour

Il n'y a pas 36 manières de passer des valeurs d'une page à l'autre (en asp3/vbscript) :
D'abord, si tu déclare dans une première page une variable du style :
a=1
et que tu regardes sa valeur dans une autre page :
<%= a %>, tu constate qu'elle a disparu, car la durée de vie d'une variable est celle de la page.

Il y a grossomerdo 4 façons de faire passer des valeurs :
1/ en entête HTTP, c'est à dire, en gros en paramètre d'url, par exemple, si tu fait
response.redirect page2.asp?a=1
tu récupère a grâce à :
a=request("a")

2/ dans le corps :
tu inclus tes variables dans des champs de formulaire. C'est un peu la form que je t'ai décrit plus haut :
<form action="page2.asp" method="post">



</form>
En cliquant sur "Envoyer", ton internaute envoie automatiquement les données qu'il a tapées dans les champs k1 et k2.
Tu les récupères également par request("k1") et request("k2").
(au passage, si tu spécifie une méthode GET" à ton formulaire, tu t'aperçois que tu reviens à la méthode 1/ )

3/ Variables de session : Apparemment, tu connais

4/ Variables d'application : hors sujet ici

J'espère que ce petit "tuto" t'aidera à trouver ton erreur

Cordialement
Roro webDev
Messages postés
489
Date d'inscription
mardi 16 novembre 2004
Statut
Membre
Dernière intervention
22 novembre 2007

En fait, comm tu peux le voir si tu as recu mes pages, je connais aussi la methode post ou get que j'utilise mais la dans ce K la, ca ne march pa, va savioir pourquoi..

Essay par toi mêm sur mes pages car j'avou que je commenc a perdr un pa patience, ca fé qd mêm 5jours que je suis dessu et que je n'arriv pa a trouvé

ton aide m'est précieuse


++
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Bonjour

Vu !
Ton erreur est là :

avec, plus haut :
function redirec() {
window.location="page2.asp";
}

Ceci ne permet pas de passer les valeurs de variables.
Soit tu modifie ta fonction redirec
deux possibilités :
{
document.forms[0].action="page2.asp";
document.forms[0].submit();
}

ou :

{location.href="page2.asp?k1=" + document.getElementById("k1").value + "&k2=" + document.getElementById("k2").value;
}

(Je préfère utiliser document.getElementById("k1") au lieu de document.formulaire.K1 ! Par contre il ne faut pas omettre de déclarer les id des champs. C'est une méthode plus universelle. Pour s'en convaincre : le message envoyé par firefox à l'ouverture de tes pages :
Avertissement : Élément référencé par son ID/NAME dans le contexte global. Utilisez la propriété standard du W3C document.getElementById() à la place.
Fichier Source : http://pc01/test/page0.asp
Ligne : 8)

Dernier petit "conseil" : évites les &nbsp; pour ta mise en page : utilises plutôt les tableaux

Tiens-moi au courant ...

Cordialement
Roro webDev
Messages postés
489
Date d'inscription
mardi 16 novembre 2004
Statut
Membre
Dernière intervention
22 novembre 2007

Ok mais ce né pa ca mon probleme 1er, c le fait que les valeurs ne se mette pas a jour dans ma base, c tou..
Si tu veux, qd je lé modifi dan ma page 2, ben ca ne fé rien, qd je retourn sur ma page 1 avec mon bouton, ca me met des valeur nul a la place de K1 et K2


++
Messages postés
489
Date d'inscription
mardi 16 novembre 2004
Statut
Membre
Dernière intervention
22 novembre 2007

Tu comprend ce que je ve dire?
enfin merci qd mêm pr ta fonction, enfin ma fonction que tu a customizé, ell march bien

Si maintenan t'arrivé a resoudr l'autr probleme jte seré vrémen reconnaissan !!


++