IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

Insertion enregistrement dans table


Sujet :

ASP

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 19
    Points : 5
    Points
    5
    Par défaut Insertion enregistrement dans table
    Bonjour a tous

    Voila j'ai une page ajout.asp qui me permets d'ajouter des enreg a ma table (Saisie_Articles). Quand je clique sur le btn ENVOYER il me renvoi vers ma page ok.asp mais l'enreg n'est pas dans la table.

    Comment faire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    <%
    Set oConn = Server.CreateObject("ADODB.Connection") 'Création d'une instance
    connstring="DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=......"
    oConn.Open connstring 'Ouverture de la connection
    oConn.Execute(SQLQuery) 'Exécution de la requête
    oConn.close 'Fermeture de la connection
     
    ENVOY = Left(UCase(Request("ENVOYER")),5) ' On récupère la valeur du bouton cliqué
    If ENVOY = "ENVOY" Then ' Si le bouton ENVOYER a été cliqué, alors
    If Request("Date") = "" OR Request("Libelle") = ""  OR Request("N°Fiche") = "" then 'On vérifie si les deux champs ont bien été remplis, sinon
    msg = msg & "<B><I>Veuillez remplir tous les champs.</I></B><BR>" 'Message
    End If
     
    If msg = "" Then 'Si aucune erreur alors, création de la requête d'insertion dans la base
    SQLQuery= "INSERT INTO Saisie_Articles (Date, Libelle, N°Fiche, Entrees, Sorties, Affectation)"
    SQLQuery= SQLQuery & "VALUES( '" & Request("Date") & "','"& Request("Libelle")& "','" & Request("N°Fiche") & "','" & Request("Entrees") & "','" & Request("Sorties") & "','" & Request("Affectation") & "')"
     
    Response.Redirect "ok.asp" 'Enfin, on va sur la fiche "OK" qui certifie le bon enregistrement des données
    End If
     
    Elseif Annuler = "ANNULER" Then ' Si Annuler a été cliqué alors...
    Response.Redirect "ajout.asp" ' retour a la page Ajout.asp
    End if
    %>
    <html>
    <body>
    <table>
    <tr>
    <td valign="top" bgcolor="#FFFFFF">
    <CENTER>
    <form method="POST" action="ok.asp">
    <H2>Ajouter un enregistrement</H2>
    <BR>
    <table>
    <tr>
    <td>Date: </td>
    <td>
    <input type="text" name="Date" size="20" value="<%=Request("Date")%>">
    </td>
    </tr>
    <tr>
    <td>Libelle: </td>
    <td>
    <input type="text" name="Libelle" size="20" VALUE="<%=Request("Libelle")%>">
    </td>
    </tr>
    <tr>
    <td>N°Fiche: </td>
    <td>
    <INPUT TYPE="text" NAME="N°Fiche" SIZE="20" VALUE="<%=Request("N°Fiche")%>">
    </td>
    </tr>
    <tr>
    <td>Entrees: </td>
    <td>
    <INPUT TYPE="text" NAME="Entrees" SIZE="20" VALUE="<%=Request("Entrees")%>">
    </td>
    </tr>
    <tr>
    <td>Sorties: </td>
    <td>
    <INPUT TYPE="text" NAME="Sorties" SIZE="20" VALUE="<%=Request("Sorties")%>">
    </td>
    </tr>
    <tr>
    <td>Affectation: </td>
    <td>
    <INPUT TYPE="text" NAME="Afectation" SIZE="20" VALUE="<%=Request("Affectation")%>">
    </td>
    </tr>
    <%=(msg)%> 'C'est ici que le message d'alerte est susceptible d'apparaitre s'il y a une erreur de saisie ou une saisie incomplète
    </table>
    <p>
    <input type="submit" value="ENVOYER" name="Envoyer">
    <input type="submit" value="ANNULER" name="Annuler">
    </p>
    </form>
    </center>
    </td>
    </table>
    </body>
    </html>
    merci d'avance

  2. #2
    Expert confirmé
    Avatar de grafikm_fr
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    2 470
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 2 470
    Points : 5 059
    Points
    5 059
    Par défaut
    Euh... Si dans ton form, il y a action="ok.asp", c'est que c'est dans ok.asp qu'il faut placer le code d'insertion???

    De maniere plus generale, je te conseille de separer un peu plus ton code (l'insertion dans une page separée)

    Ou alors, tu peux mettre tout dans la meme page mais dans ce cas, ton formulaire devra se pointer sur lui-meme (sur ajouter.asp, quoi)


    Grafikm

  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 19
    Points : 5
    Points
    5
    Par défaut
    ok mais comme je debute je ne pige pas trop ce que tu veut me dire.

    Peut tu m'expliquer mieux stp ?

    merci d'avance

  4. #4
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 79
    Points : 96
    Points
    96
    Par défaut
    il veut que l'attribut action de ta balise form n'est pas le bon
    tu dois lui mettre dans ton cas le nom de ta page

    sinon il va directement sur la page ok.asp sans effectuer l'insertion que tu lui demandes de faire

  5. #5
    Expert confirmé
    Avatar de grafikm_fr
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    2 470
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 2 470
    Points : 5 059
    Points
    5 059
    Par défaut
    [Grafikm recupere son portable de service sur la pelouse de la boite car il vient de passer par la fenetre à cause d'une erreur de protection générale]

    Bon, je disais donc

    - Tu fais une page ajouter.asp. La dedans tu fais ton form et dans les parametres du form, tu mets action="ok.asp"

    - dans OK.asp, tu recupere avec Request.Form("nom du champ") les valeurs des champs (regarde l'excellent tutoriel sur http://asp.developpez.com/ pour plus de details) et tu construit ta chaine sql d'insertion

    - attention au piege! Le code pour inserer c'est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    cnx.Mode=3
    cnx.Open "ma BD etc..."
    cnx.Execute (sql)
    Dis-moi si je suis pas clair...

  6. #6
    Futur Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 19
    Points : 5
    Points
    5
    Par défaut
    g vais peter un cable (non je rigole). Je vais regarder la tutoriel d'abord et je vous tiens au courant

    merci

  7. #7
    Futur Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 19
    Points : 5
    Points
    5
    Par défaut
    frainchement je ne pige pas trop :

    voila le code de mes deux pages ajout.asp et ok.asp

    pour ajout.asp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
     
    <html>
    <body>
    <table>
    <tr>
    <td valign="top" bgcolor="#FFFFFF">
    <CENTER>
    <form method="POST" action="ok.asp">
    <H2>Ajouter un enregistrement</H2>
    <BR>
    <table>
    <tr>
    <td>Date: </td>
    <td>
    <input type="text" name="Date" size="20" value="<%=Request("Date")%>">
    </td>
    </tr>
    <tr>
    <td>Libelle: </td>
    <td>
    <input type="text" name="Libelle" size="20" VALUE="<%=Request("Libelle")%>">
    </td>
    </tr>
    <tr>
    <td>N°Fiche: </td>
    <td>
    <INPUT TYPE="text" NAME="N°Fiche" SIZE="20" VALUE="<%=Request("N°Fiche")%>">
    </td>
    </tr>
    <tr>
    <td>Entrees: </td>
    <td>
    <INPUT TYPE="text" NAME="Entrees" SIZE="20" VALUE="<%=Request("Entrees")%>">
    </td>
    </tr>
    <tr>
    <td>Sorties: </td>
    <td>
    <INPUT TYPE="text" NAME="Sorties" SIZE="20" VALUE="<%=Request("Sorties")%>">
    </td>
    </tr>
    <tr>
    <td>Affectation: </td>
    <td>
    <INPUT TYPE="text" NAME="Afectation" SIZE="20" VALUE="<%=Request("Affectation")%>">
    </td>
    </tr>
    <%=(msg)%> 'C'est ici que le message d'alerte est susceptible d'apparaitre s'il y a une erreur de saisie ou une saisie incomplète
    </table>
    <p>
    <input type="submit" value="ENVOYER" name="Envoyer">
    <input type="submit" value="ANNULER" name="Annuler">
    </p>
    </form>
    </center>
    </td>
    </table>
    </body>
    </html>
    et pour ok.asp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <%
    Set oConn = Server.CreateObject("ADODB.Connection") 'Création d'une instance
    connstring="DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=\Inetpub\wwwroot\stockodsh\stockodsh.mdb"
    oConn.Mode=3
    oConn.Open connstring 'Ouverture de la connection
    oConn.Execute(SQLQuery) 'Exécution de la requête
    oConn.close 'Fermeture de la connection
     
    ENVOY = Left(UCase(Request("ENVOYER")),5) ' On récupère la valeur du bouton cliqué
    If ENVOY = "ENVOY" Then ' Si le bouton ENVOYER a été cliqué, alors
    If Request("Date") = "" OR Request("Libelle") = ""  OR Request("N°Fiche") = "" then 'On vérifie si les deux champs ont bien été remplis, sinon
    msg = msg & "<B><I>Veuillez remplir tous les champs.</I></B><BR>" 'Message
    End If
     
    If msg = "" Then 'Si aucune erreur alors, création de la requête d'insertion dans la base
    SQLQuery= "INSERT INTO Saisie_Articles (Date, Libelle, N°Fiche, Entrees, Sorties, Affectation)"
    SQLQuery= SQLQuery & "VALUES( '" & Request("Date") & "','"& Request("Libelle")& "','" & Request("N°Fiche") & "','" & Request("Entrees") & "','" & Request("Sorties") & "','" & Request("Affectation") & "')"
     
    'Set OBJdbConnection = Server.CreateObject("ADODB.Connection")
    'connstring="DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=\Inetpub\wwwroot\stockodsh\stockodsh.mdb"
    'OBJdbConnection.Open connstring
    'SQL = "SELECT * FROM Saisie_Articles order by Refsaisiearticles"
    'Set rs = OBJdbConnection.Execute(SQL)
     
     
    Response.Redirect "ok1.asp" 'Enfin, on va sur la fiche "OK" qui certifie le bon enregistrement des données
    End If
     
    Elseif Annuler = "ANNULER" Then ' Si Annuler a été cliqué alors...
    Response.Redirect "ajout.asp" ' retour a la page Ajout.asp
    End if
    %>
     
    <HTML><HEAD><TITLE>OK</TITLE>
    </HEAD><BODY>
       Bonjour !<BR>
       <%="Ajout bien enregistré"%><BR>
       il est <% =time %> !
    </BODY></HTML>
    quand j'execute le code j'ai une erreur sur le serveur qui me dis que "Aucun texte de commande n'a ete definit pour l'objet de commande" et il s'arrete sur la ligne n°6 de ok.asp

    why ?

  8. #8
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 79
    Points : 96
    Points
    96
    Par défaut
    peut etre parce que la chaine SQLQUERY est vide?

    c'est meme sur je dirais

  9. #9
    Futur Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 19
    Points : 5
    Points
    5
    Par défaut
    peut tu me donner + de renseignement stp ?

    merci

  10. #10
    Expert confirmé
    Avatar de grafikm_fr
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    2 470
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 2 470
    Points : 5 059
    Points
    5 059
    Par défaut
    C'est Request.Form("Nom de ton champ") qu'il faut mettre pour recuperer la saisie...

  11. #11
    Futur Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 19
    Points : 5
    Points
    5
    Par défaut
    ca ne marche po non +

    voici le nouveau code après qq modifs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
     
    <%
    Set oConn = Server.CreateObject("ADODB.Connection") 'Création d'une instance
    connstring="DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=\Inetpub\wwwroot\stockodsh\stockodsh.mdb"
    oConn.Mode=3
    oConn.Open connstring 'Ouverture de la connection
    oConn.Execute(SQLQuery) 'Exécution de la requête
    oConn.close 'Fermeture de la connection
     
    ENVOY = Left(UCase(Request("ENVOYER")),5) ' On récupère la valeur du bouton cliqué
    If ENVOY = "ENVOY" Then ' Si le bouton ENVOYER a été cliqué, alors
    If Request("Date") = "" OR Request("Libelle") = ""  OR Request("N°Fiche") = "" then 'On vérifie si les deux champs ont bien été remplis, sinon
    msg = msg & "<B><I>Veuillez remplir tous les champs.</I></B><BR>" 'Message
    End If
     
    If msg = "" Then 'Si aucune erreur alors, création de la requête d'insertion dans la base
    SQLQuery= INSERT INTO Saisie_Articles (Date, Libelle, N°Fiche, Entrees, Sorties, Affectation)
    SQLQuery= SQLQuery & "VALUES( '" & Request.Form("Date") & "','"& Request.Form("Libelle")& "','" & Request.Form("N°Fiche") & "','" & Request.Form("Entrees") & "','" & Request.Form("Sorties") & "','" & Request.Form("Affectation") & "')"
     
    Response.Redirect "ok1.asp" 'Enfin, on va sur la fiche "OK" qui certifie le bon enregistrement des données
    End If
     
    Elseif Annuler = "ANNULER" Then ' Si Annuler a été cliqué alors...
    Response.Redirect "ajout.asp" ' retour a la page Ajout.asp
    End if
    %>
     
    <HTML><HEAD><TITLE>OK</TITLE>
    </HEAD><BODY>
       Bonjour !<BR>
       <%="Ajout bien enregistré"%><BR>
       il est <% =time %> !
    </BODY></HTML>

  12. #12
    Expert confirmé
    Avatar de grafikm_fr
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    2 470
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 2 470
    Points : 5 059
    Points
    5 059
    Par défaut
    Euh... Faut faire l'insertion APRES que t'aies construit ta chaine SQL, pas avant...

    Un truc comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    pasBon=False
    var1=Request.Form("Champ1")
    If var1<>"Starcraft" then pasBon=True
    var2=Request.Form("Champ2")
    if var2<=3 then pasBon=True
    ...
     
    If pasBon=False then
    sql="INSERT INTO Table1 Values (' " & var1 & "," & var2 & ");"
    cnx.mode=3
    cnx.Open "maBase"
    cnx.Execute(sql)
    cnx.Close
    set cnx=nothing
    Response.Redirect("bien.asp")
    Else
    Response.redirect("boulet.asp")
    End if
    Un truc comme ca quoi

  13. #13
    Futur Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 19
    Points : 5
    Points
    5
    Par défaut
    merci c marche

  14. #14
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 79
    Points : 96
    Points
    96
    Par défaut
    c'est ce que j'avais dit

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/05/2008, 21h37
  2. Recherche d'enregistrement dans table Excel
    Par SlySylvain dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/12/2006, 16h47
  3. [SQL] Pb d'insertion donnée dans table, pb requête SQL
    Par PuppeT mAsTer dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 03/07/2006, 12h26
  4. Forms9i: Pb enregistrement dans tables
    Par Kro_64 dans le forum Forms
    Réponses: 8
    Dernier message: 15/06/2006, 16h28
  5. Insertion valeurs dans table en visual basic
    Par frevale dans le forum Access
    Réponses: 2
    Dernier message: 06/09/2005, 10h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo