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 :

[ASP3] j'aimerais remplir une table access via le web


Sujet :

ASP

  1. #21
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour PC75,

    Merci pour ton dévouement.

    Je suis très attentif à ton code et voici les quelques questions/remarques suivant sa lecture :

    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    <html>
    <head>
    <title>Chanteur</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body>
    <%
    mysql = "select * FROM chanteur"
    set rst= Server.CreateObject("ADODB.Recordset")
    rst.cursorlocation = aduseclient
    rst.cachesize = 5
    rst.open mysql, "delibes"
    %>
    <form name="frmSaisie" method="post" action>
    <input type="hidden" name="txtCompteur">
    <%
    if not rstemp.EOF then Je ne comprends pas pourquoi on met rstemp alors que nous l’avons declaré nulle part, je présûme que c’est rst.EOF ???
    rstemp.movefirst idem que ci-dessus
    %>
    <table align="center" border="1" width="100%">
    <%
    Str_Compteur = 0
    DO while not rst.EOF
    Str_Compteur = Str_Compteur + 1
    ' Gestion de la couleur de la ligne
    If Bln_Row_Color Then ici je ne comprends pas, on commence avec une condition (si) mais sans critère de sélection.
    Str_Row_Color = "#BAE2E3"
    Else
    Str_Row_Color = ""
    End If
    ' Affectation du complément pour changer la couleur de la prochaine ligne
    Bln_Row_Color = Not Bln_Row_Color
    %>
    <tr BGCOLOR="<%=Str_Row_Color %>">

    <td>
    <font face="Arial" color="#0099CC" size="3">
    <strong>
    <%=rst("nom_chanteur")%>
    <input type="hidden" name="txtChanteur<%=Str_Compteur%>" value="<%=rst("nom_chanteur")%>">
    </strong>
    </font>
    </td>

    <td>
    <input type="text" name="txtGuitare<%=Str_Compteur%>" title="Modifier" value="<%=rst("guitare")%>">
    </td>

    <td>
    <input type="text" name="txtChant<%=Str_Compteur%>" title="Modifier" value="<%=rst("chant")%>">
    </td>

    </tr>
    <%
    rst.MoveNext
    loop
    %>
    </table>
    <%
    end if ici je ne comprend pas pourquoi le end if
    rstemp.Close ici on retrouve à nouveau ce rstemp
    set rstemp = Nothing
    %>
    </form>
    </body>
    </html>

    Ce code termine donc la première partie de notre code qui est la saisie des informations ?

    Est-ce que le reste de mon code (recupchanteur) fonctionnera avec celui-ci ?

    Demain matin, je pourrai essayer le code en réel, je te tiendrai au courrant.

    Je tiens à sincèrement te remercier à nouveau.

    Bonne soirée.

    bgs

  2. #22
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    if not rstemp.EOF then Je ne comprends pas pourquoi on met rstemp alors que nous l’avons declaré nulle part, je présûme que c’est rst.EOF ???
    rstemp.movefirst idem que ci-dessus
    Erreur de copier / coller

    If Bln_Row_Color Then ici je ne comprends pas, on commence avec une condition (si) mais sans critère de sélection.
    C'est un booleen qui permet d'alterner la couleur des lignes du tableau (principe d'une bascule, une fois vrai, une fois faux). Ce code n'est pas indispensable, il permet seulement de faciliter la lecture de longs tableaux.

    end if ici je ne comprend pas pourquoi le end if
    Il ferme le : if not rstemp.EOF then

    rstemp.Close ici on retrouve à nouveau ce rstemp
    set rstemp = Nothing
    Encore un copier / coller malheureux ; c'est évidemment rst.

    Est-ce que le reste de mon code (recupchanteur) fonctionnera avec celui-ci ?
    Pour la récupération de la saisie et l'enregistrement dans ta base de données, soit tu utilises un bouton de type submit qui appellera le code d'insertion, soit tu utilises un bouton de type button (ou une image) qui lancera un bout de code javascript pour vérifier la saisie (pas de note supérieure à 20 par exemple) avant d'appeler le code d'insertion.

  3. #23
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Salut PC75,

    Super grand merci pour tes commentaires.

    J'ai travaillé sur le script que tu m'as envoyé et c'est pas mal du tout

    Tu me dis donc que chaque zone de texte a un nom différent grâce au compteur, c'est top génial !

    http://164.15.112.38/delibes/pc75.asp

    Malheureusement, il nous reste à faire l'autre partie du boulot, pouvoir entrer les données dans la table, et c'est là pour moi le plus dur.

    Il faut le faire avec une boucle ?

    Encore un super grand merci !

    Bgs

  4. #24
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Re-salut PC75,

    J'essaie de récupérer les données entrées sur ce site

    http://164.15.113.38/delibes/pc75.asp

    avec ce code

    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
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans titre</title>
    </head>
     
    <body>
    <% 
    dim cnn
    dim rst
    set cnn = server.CreateObject("ADODB.CONNECTION")
    cnn.open = "delibes"
    set rst = server.CreateObject("ADODB.RECORDSET")
    rst.open  "select * FROM [chanteur]  ;",cnn,2,3
     
    while not rst.eof
    with request
    rst("guitare") = .form("txtGuitare<%=Str_Compteur%>")
    rst("chant") = .form("txtChant<%=Str_Compteur%>")
    end with
    rst.movenext
    wend
    rst.update
    rst.close
    set rst = nothing
    cnn.close
    set cnn = nothing
     
    %>
    <p>&nbsp;</p>
    <p>Mise à jour effectuée </p>
     
    </body>
    </html>
    Mais j'ai la page d'erreur :

    Erreur 500 - Erreur du serveur.

    Quand je met un commentaire (') devant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    rst("guitare") = .form("txtGuitare<%=Str_Compteur%>")
    rst("chant") = .form("txtChant<%=Str_Compteur%>")
    le site apparait avec "Mise à jour effectuée" mais la table n'est pas remplie (car j'ai mis le commentaire).

    Qu'en penses-tu ?

    Merci d'avance.

    bgs

  5. #25
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Modifie cette ligne :
    <form id="form1" name="form1" method="post" action="recupchanteurpc75.asp">
    par :
    <form id="form1" name="form1" action="recupchanteurpc75.asp?NbLignes=<%=Str_Compteur %>">
    Et dans ta page recupchanteurpc75.asp, tu fais ça :
    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
     
    ' Récupérer le nombre de lignes à traiter
    Str_NbLignes = Request.QueryString("NbLignes")
     
    Set Conn=Server.CreateObject("ADODB.Connection")
    ' initialisation de la connexion
    Conn.Open(Application("DsnODBC"))
     
    ' Récupérer les valeurs
    For i = 1 to Str_NbLignes
       Str_Chanteur = Request.Form("txtChanteur" & i)
       Str_Guitare = Request.Form("txtGuitare" & i)
       Str_Chant = Request.Form("txtChant" & i)
     
       ' Tentative d'insertion
       on error resume next
       txtSQL = ""
       txtSQL = "insert into MaTable .......
       Conn.Execute (txtSQL)
       ' Si erreur => Update
       if Err then
          on error goto 0
          txtSQL = ""
          txtSQL = "update MaTable ......
          Conn.Execute (txtSQL)
       end if
       Conn.close
       set Conn = nothing 
    Next
    Response.Redirect("PageDeSaisie.asp")

  6. #26
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Merci PC75,

    je fais les changements et je te dis quoi.

    A tout de suite.

    bgs

  7. #27
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Re-salut PC75,

    Voilà, j'ai fais les modifcations, malheureusemnt ça ne fonctionne pas (erreur 500).

    Voici le code que je viens d'éditer :

    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
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans titre</title>
    </head>
     
    <body>
    <% 
    'Récupérer le nombre de lignes à traiter 
    Str_NbLignes = Request.QueryString("NbLignes") 
     
    dim cnn
    dim rst
    set cnn = server.CreateObject("ADODB.CONNECTION")
    Cnn.Open(Application("DsnODBC"))
    set rst = server.CreateObject("ADODB.RECORDSET")
    rst.open  "select * FROM [chanteur]  ;",cnn,2,3
     
    ' Récupérer les valeurs 
    For i = 1 to Str_NbLignes 
       'Str_Chanteur = Request.Form("txtnom_chanteur" & i) 
       Str_Guitare = Request.Form("txtGuitare" & i) 
       Str_Chant = Request.Form("txtChant" & i) 
     
       ' Tentative d'insertion 
       on error resume next 
       txtSQL = "" 
       txtSQL = "insert into [chanteur]"
       Cnn.Execute (txtSQL) 
       'Si erreur => Update 
       if Err then 
          on error goto 0 
          txtSQL = "" 
          txtSQL = "update [chanteur]" 
          Cnn.Execute (txtSQL) 
       end if 
       Cnn.close 
       set Cnn = nothing 
    Next 
    Response.Redirect("pc75.asp")
     
    <p>Mise à jour effectuée </p>
     
    </body>
    </html>

    Est-ce bon ceci ? Puis-je continuer à utilsier mon dsn qui est cnn ?
    dim cnn
    dim rst
    set cnn = server.CreateObject("ADODB.CONNECTION")
    cnn.open = "delibes"
    set rst = server.CreateObject("ADODB.RECORDSET")
    rst.open "select * FROM [chanteur] ;",cnn,2,3
    Je ne comprends pas bien

    Str_Guitare = Request.Form("txtGuitare" & i)
    On aurait pas pû mettre à la place :

    rst("guitare") = Request.Form("txtGuitare" & i)
    :

    ici je comprends pas bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     txtSQL = "" 
       txtSQL = "insert into [chanteur]"
       Cnn.Execute (txtSQL)
    txtSQL à quelle valeur ?

    Ne pouvons nous pas faire rst.update ?

    Merci beaucoup pour ton aide et désolé pour ces questions.

  8. #28
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Ne pouvons nous pas faire rst.update ?
    Ton rst contient le résultat de :
    rst.open "select * FROM [chanteur] ;",cnn,2,3
    Donc, rst contient plusieurs enregistrements

    Si tu fais un rst.update, sur quel enregistrement s'appliquera-t-il ?

    La solution que je te propose, c'est de ne pas utiliser de recordset pour faire les mises à jour.
    Il faut utiliser des requêtes SQL :

    Pour la création :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    txtSQL = "" 
    txtSQL = "insert into [chanteur] (Chanteur, Guitare, Chant) values('" &  Str_Chanteur & "', '" & Str_Guitare & "' , "'" & Str_Chant & "'")
    Conn.Execute (txtSQL)
     
    etc ...
    Pour la Modif :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    txtSQL = "" 
    txtSQL = "update [chanteur] set Guitare = '" & Str_Guitare & "' , Chant = '" & Str_Chant & "' where Chanteur = '" & Str_Chanteur & "'"
    Conn.Execute (txtSQL)
     
    etc ...

  9. #29
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Re-salut,

    Merci pour ta réponse.

    En effet, le SQL n'est pas mal.

    J'ai donc supprimé tout ce qui était rst.

    Voici le début de mon code (uniquement l'asp) :

    J'ai malheureusement toujours l'erreur 500.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <% 
    'Récupérer le nombre de lignes à traiter 
    Str_NbLignes = Request.QueryString("NbLignes") 
    dim cnn
    dim Str_Chanteur [color=blue]'j'ai déclarer quatres variables[/color]
    dim Str_Guitare
    dim Str_Chant
    dim txtSQL
    Ensuite je lance la connection dsn

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set cnn = server.CreateObject("ADODB.CONNECTION")
    Cnn.Open(Application("DsnODBC"))
    'dois-je laisser "DsnODBC" ou dois-je mettre "DSN=delibes" ?

    Ensuite je mélange un peu les pinceaux :

    ' Récupérer les valeurs
    'on commence une boucle i jusque NbLignes
    For i = 1 to Str_NbLignes
    Str_Chanteur = Request.Form("txtChanteur" & i) 'ici je ne comprends pas, on donne la valeur de txtChanteur + le chiffre du compteur à Str_Chanteur ?
    Str_Guitare = Request.Form("txtGuitare" & i) 'est-ce que ces lignes sont nécessaires vue que plus bas on dit insert into chanteur....
    Str_Chant = Request.Form("txtChant" & i) idem ici

    ' Tentative d'insertion
    'en cas d'erreur on va à la ligne suivante
    on error resume next 'en cas d'erreur il supprime la valeur de txtSQL autrement il passe cette instruction ?
    txtSQL = ""
    txtSQL = "insert into chanteur [(nom_chanteur, guitare, chant)]
    values('" & txtChanteur & "', '" & txtGuitare & "' , '" & txtChant & "')"
    Cnn.Execute (txtSQL)

    'Si erreur => Update
    if Err then
    on error goto 0
    txtSQL = ""
    txtSQL = "update [chanteur]"
    Cnn.Execute (txtSQL)
    end if
    Cnn.close
    set Cnn = nothing
    Next

    Si je peux me permettre, je t'offrirai une boîte de chocolat pour te remercier.

    Merci
    bgs

  10. #30
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Alors, dans l'ordre :

    'dois-je laisser "DsnODBC" ou dois-je mettre "DSN=delibes" ?
    Tu utilises ton DSN, bien sur.

    Pour la partie 'Récupérer les valeurs'
    Lance ta page http://164.15.112.38/delibes/pc75.asp et fais un clic droit, puis choisis "Afficher la source".
    Tu verras que ta page contient des zones de texte qui se nomment
    txtChanteur1, txtGuitare1, txtChant1
    txtChanteur2, txtGuitare2, txtChant2
    txtChanteur3, txtGuitare3, txtChant3
    etc ...
    Tu en a donc autant que la valeur de NbLignes.
    D'où la boucle qui te permet de récupérer les valeurs des différents lignes.

    on error resume next 'en cas d'erreur il supprime la valeur de txtSQL autrement il passe cette instruction ?
    L'instruction "on error resume next" supprime l'affichage des messages d'erreur et évite le plantage de l'appli.
    L'idée consiste à tenter une création. Si l'enregistrement existe déjà (doublon), une erreur se produira. Mais le "on error resume next" ne fera pas planter au moment du "Cnn.Execute (txtSQL)".

    C'est pourquoi, derrière le "Cnn.Execute (txtSQL)", si la variable Err est alimentée (cas d'erreur), on fait une reqête UPDATE.

    PS : On y est presque

  11. #31
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Re-salut,

    Tu es vraiment quelqu'un de très patient, chapeau !

    Je viens de faire une découverte très intéressante.

    Quand je vais sur ce site http://164.15.112.38/delibes/pc75.asp avec Internet Explorer, il met dit erreur 500...

    Par contre la même manipulation avec firefox et j'obtiens un message d'erreur clair (contrairement à celui de internet explorer) :

    Erreur de compilation Microsoft VBScript erreur '800a0409'

    Constante chaîne non terminée

    /delibes/recupchanteurpc75.asp, ligne 33

    txtSQL = "insert into chanteur [(nom_chanteur, guitare, chant)]
    ---------------------------------------------------------------^
    Voici la ligne 33

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    txtSQL = "insert into chanteur [(nom_chanteur, guitare, chant)]
    values('" &  txtChanteur & "', '" & txtGuitare & "' , '" & txtChant & "')";
    Comme cela, je pense que ça va nous aider ? qu'en penses-tu ?

    Merci pour ta générosité !

    bgs

  12. #32
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Essaie plutot ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    txtSQL = "insert into chanteur (nom_chanteur, guitare, chant) 
    values('" &  txtChanteur & "', '" & txtGuitare & "' , '" & txtChant & "')"

  13. #33
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par pc75
    Re,

    Essaie plutot ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    txtSQL = "insert into chanteur (nom_chanteur, guitare, chant) 
    values('" &  txtChanteur & "', '" & txtGuitare & "' , '" & txtChant & "')"
    Re,

    Le problème est toujours là, même erreur, même ligne.

    Bizzare, non ?

    Merci

    bgs

  14. #34
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Ta table se nomme bien "chanteur" ?

    Quelle est sa description (nom et type des champs) ?

  15. #35
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Re,

    La table s'appelle chanteur

    et voici les champs (c'est une table de test) :

    nom_chanteur
    guitare
    chant
    solfège
    prestence

    tous les champs sont de type texte.

    Merci et à tout de suite.

    bgs

  16. #36
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Re-salut,

    Je t'informe que ça bouge encore.

    Il fallait mettre cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    txtSQL = "insert into chanteur (nom_chanteur, guitare, chant) values('" &  txtChanteur & "', '" &txtGuitare & "' , '" & txtChant & "')"
    en une seule ligne et non en deux.

    Par contre, toujours pas d'écriture dans ma table mais enfin on avance.
    Un super grand merci à toi.

    Je revérifie le tout et je te dis quoi.

    Bonne soirée si on se parle plus aujourd'hui.

    bgs

  17. #37
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Salut PC75, Salut tout le monde,

    Etant donné que les Professeurs ne devront que mettre à jour, je me suis dis qu'il ne fallait garder que la partie du code qui permet de faire cela qui est donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    txtSQL = "update [chanteur] set guitare = '" & Str_Guitare & "' , chant = '" & Str_Chant & "' where nom_chanteur = '" & Str_Chanteur & "'"
    J'ai aussi mis en fin de code :

    ça devrait nous permettre d'obtenir la valeur de la variable (qui est malheureusement "").

    Ca ne marche pas encore, la table ne se met pas à jour mais on avance grandement car plus de message d'erreur, j'arrive sur une page qui me dit Mise à jour effectuée.

    Pour moi le problème vient d'ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Str_Chanteur = Request.Form("txtChanteur" & i) 
       Str_Guitare = Request.Form("txtGuitare" & i) 
       Str_Chant = Request.Form("txtChant" & i)
    Il ne donne pas à la variable la valeur de la zone de texte, enfin je pense.

    Qu'en penses-tu ?

    Merci d'avance pour ton aide.

    PS: voici le code de la page de récup.:

    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
    <% 
    'Récupérer le nombre de lignes à traiter 
    Str_NbLignes = Request.QueryString("NbLignes") 
    dim cnn
    dim Str_Chanteur
    dim Str_Guitare
    dim Str_Chant
    dim txtSQL
     
    set cnn = server.CreateObject("ADODB.CONNECTION")
    'Cnn.Open(Application("delibes"))
    cnn.open "delibes"
     
    ' Récupérer les valeurs 
    For i = 1 to Str_NbLignes 
       Str_Chanteur = Request.Form("txtChanteur" & i) 
       Str_Guitare = Request.Form("txtGuitare" & i) 
       Str_Chant = Request.Form("txtChant" & i) 
     
       ' Tentative d'insertion 
       'en cas d'erreur on va à la ligne suivante
       'on error resume next 
       'txtSQL = "" 
    'txtSQL = "insert into chanteur (nom_chanteur, guitare, chant) values('" &  txtChanteur & "', '" &txtGuitare & "' , '" & txtChant & "')"
    txtSQL = "" 
    txtSQL = "update [chanteur] set guitare = '" & Str_Guitare & "' , chant = '" & Str_Chant & "' where nom_chanteur = '" & Str_Chanteur & "'" 
    response.Write txtSQL
    Cnn.Execute (txtSQL) 
     
     '  'Si erreur => Update 
    '   if Err then 
    '      on error goto 0 
    '      txtSQL = "" 
    '      txtSQL = "update [chanteur]" 
    '      Cnn.Execute (txtSQL) 
    '   end if 
       Cnn.close 
       set Cnn = nothing 
    Next 
     
    'Response.Redirect("pc75.asp") %>
     
    <p>Mise à jour effectuée </p>
    bgs

  18. #38
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Après toutes les modifications, peux-tu nous donner le code complet de ta page de saisie ?

  19. #39
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par pc75
    Re,

    Après toutes les modifications, peux-tu nous donner le code complet de ta page de saisie ?
    Heueux de t'entendre,

    Voici le code de ma page de saisie :
    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
    83
    84
    85
    86
    87
    88
    89
    90
    91
     
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans titre</title>
    </head>
     
    <body>
    <%
     
    dim rst
    dim cnn
    set cnn = server.CreateObject("ADODB.CONNECTION")
    set rst= Server.CreateObject("ADODB.Recordset") 
    cnn.open "delibes"
    'rst.cursorlocation = aduseclient 
    rst.cachesize = 5 
    mysql = "select * FROM  chanteur" 
    rst.open mysql, "delibes"
    %> 
    <form name="frmSaisie" method="post" action> 
    <input type="hidden" name="txtCompteur"> 
    <% 
    if not rst.EOF then 
    rst.movefirst 
    %> 
    <table align="center" border="1" width="100%"> 
    <% 
    Str_Compteur = 0 
    DO while not rst.EOF 
       Str_Compteur = Str_Compteur + 1 
       ' Gestion de la couleur de la ligne 
       If Bln_Row_Color Then 
          Str_Row_Color = "#BAE2E3" 
       Else 
          Str_Row_Color = "" 
       End If 
       ' Affectation du complément pour changer la couleur de la prochaine ligne 
       Bln_Row_Color = Not Bln_Row_Color 
       %> 
       <tr BGCOLOR="<%=Str_Row_Color %>"> 
     
       <td> 
       <font face="Arial" color="#0099CC" size="3"> 
       <strong> 
       <%=rst("nom_chanteur")%> 
       <input type="hidden" name="txtChanteur<%=Str_Compteur%>"  value="<%=rst("nom_chanteur")%>"> 
       </strong> 
       </font> 
       </td> 
     
       <td> 
         <div align="center">
           <input type="text" name="txtGuitare<%=Str_Compteur%>" title="Modifier" value="<%=rst("guitare")%>"> 
           </div></td> 
     
       <td> 
         <div align="center">
           <input type="text" name="txtChant<%=Str_Compteur%>" title="Modifier" value="<%=rst("chant")%>"> 
           </div></td> 
     
       </tr> 
       <% 
       rst.MoveNext 
    loop 
    %> 
    </table> 
    <div align="center">
      <p align="left">
        <% 
    end if 
    rst.Close 
    set rst = Nothing 
    %>
      </p>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
    </div>
    </form> 
     
    <p align="center">&nbsp;</p>
    <form id="form1" name="form1" action="recupchanteurpc75.asp?Str_NbLignes=<%=Str_Compteur %>"> 
      <div align="center">
        <input type="submit" name="Submit" value="Envoyer" />
      </div>
    </form>
    <p align="center">&nbsp;</p>
    </body>
    </html>
    Merci beaucoup pour ton aide.

    bgs

  20. #40
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    pour être complet, j'ai aussi modifier cette ligne dans la récup :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Next 
    Cnn.close 
    set Cnn = nothing %>
    avant le cnn.close et le set cnn = nothing était au-dessus du next, maintenant il libère cet objet après la boucle (une seul fois), je sais pas si c'est bon ce que j'ai fais.

    Autre chose qui je pense est important :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    form id="form1" name="form1" action="recupchanteurpc75.asp?Str_NbLignes=<%=Str_Compteur %>">
    ne devrait pas me donner le nombre de ligne sur la page de récupération ?

    Merci[/i]

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Comment remplir une table access 2003 à partir de VB6
    Par alouca dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 27/02/2010, 21h59
  2. Comment remplir une table access 2003 sous VB6
    Par alouca dans le forum Access
    Réponses: 1
    Dernier message: 27/02/2010, 13h40
  3. [ODBC] remplir une base access via une page php
    Par sonia06 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 15/05/2008, 16h26
  4. remplir une table vierge via une requete
    Par sunwind dans le forum VBA Access
    Réponses: 1
    Dernier message: 14/11/2007, 16h31
  5. Mise à jour automatique d'une table access via un .xls
    Par infratunes dans le forum Access
    Réponses: 4
    Dernier message: 05/04/2006, 18h33

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