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 :

Enquête - base Access


Sujet :

ASP

  1. #21
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 143
    Points : 38
    Points
    38
    Par défaut
    Euh voici le code que j'ai à présent :
    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
     
    <%
    rs.movefirst
    Do while not rs.eof%>
    <%
    If rs("Type") = "texte" THEN%>
    <td><%response.write(rs("Questions"))%></td><td><input type="text"></td>
    <%ELSE%>
    <td><% response.write(rs("Questions")) %></td><td><input type="radio" name ="reponse"></td>
    <%
    END IF
    response.write ("</tr>")
    %>
    <%
    rs.movenext
    loop
    %>

  2. #22
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 143
    Points : 38
    Points
    38
    Par défaut
    Finalement j'ai réussi à trouver tout seul pour une fois ; j'ai mis une imbrication de "if ... then".

    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
     
    <%
    rs.movefirst
    Do while not rs.eof%>
    <%
    If rs("Type") = "texte" THEN%>
    <td><%response.write(rs("Questions"))%></td><td><input type="text"></td>
    <%ELSE
    If rs("Valeur3") <> "" THEN %>
    <td><% response.write(rs("Questions")) %></td><td><%response.write(rs("Valeur1"))%><input type="radio" name ="reponse" value=<%response.write(rs("Valeur1"))%>>
    &nbsp;&nbsp;<%response.write(rs("Valeur2"))%><input type="radio" name ="reponse" value=<%response.write(rs("Valeur2"))%>>
    &nbsp;&nbsp;<%response.write(rs("Valeur3"))%><input type="radio" name ="reponse" value=<%response.write(rs("Valeur3"))%>></td>
    <%ELSE
    If rs("Valeur2") <> "" THEN %>
    <td><% response.write(rs("Questions")) %></td><td><%response.write(rs("Valeur1"))%><input type="radio" name ="reponse" value=<%response.write(rs("Valeur1"))%>>
    &nbsp;&nbsp;<%response.write(rs("Valeur2"))%><input type="radio" name ="reponse" value=<%response.write(rs("Valeur2"))%>></td>
    <%ELSE%>
    <td><% response.write(rs("Questions")) %></td><td><%response.write(rs("Valeur1"))%><input type="radio" name ="reponse" value=<%response.write(rs("Valeur1"))%>></td>
    <%
    END IF
    END IF
    END IF
    response.write ("</tr>")
    %>
    Je crois que je vais un peu arrêter pour aujourd'hui. Mais j'aurais sûrement d'autres questions par la suite.

  3. #23
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 150
    Points : 93
    Points
    93
    Par défaut
    re,

    le probleme ( a ma connaissance ) , c 'est que les boutons radio font partie d'un ensemble, c'est a dire que si l'un d'eux est clique les autres ne le peuvent pas, contrairement aux checkbox qui peuvent etre tous cliques ... peut etre que le mieux serait de remplacer les boutons radio par ca

    sinon pas de probleme pour d'autres questions ( en esperant pouvoir aider )

    A++

  4. #24
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 143
    Points : 38
    Points
    38
    Par défaut
    Pour les boutons radios, c'est justement ce que je voulais. Une seule option peut être cochée.

    J'ai encore essayé de nouvelles choses mais je bloque.
    De la même façon que mes questions, j'essaye de mettre juste des titres dans ma base Access et de leur assigner un format.

    C'est à dire que dans mon champ "Questions", je mets des phrases avec comme type "Rien" et dans mon fichier ASP, lors du loop, j'ai mis une condition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    If rs("Type") = "rien" THEN%>
    <td><%response.write(rs("Questions"))%></td><td>&nbsp;</td>
    Le problème, c'est que mes titres arrivent toujours en dernier ; ils ne s'affichent pas au bon endroit. Je voulais savoir si la fonction loop prenait les phrases dans l'ordre où par date d'écriture, car j'ai rajouté les titres qu'à la fin.

  5. #25
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 143
    Points : 38
    Points
    38
    Par défaut
    Je viens de faire un essai et apparement, il affiche bien mes questions par rapport à la date où je les tape ; mais moi je voudrais qu'il les affiche par rapport au champ ID que j'ai mis.

    Comment je peux faire ?

  6. #26
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 150
    Points : 93
    Points
    93
    Par défaut
    salut,

    en fait, comme en debut de la boucle il y a l'instruction " rs.movefirst", le script commencera par le premier enregistrement de ta table jusqu'au dernier.
    il faudrait mettre une condition dans ta requete.
    Dans ta table tu veux mettre des questions et des titres ( de categories que questions par exemple? )?

  7. #27
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 143
    Points : 38
    Points
    38
    Par défaut
    Dans ma table, j'ai un champ "Questions" car au début, pour essayer, j'ai juste mis mes questions dans l'ordre.
    Ensuite, dans le même esprit, j'ai voulu mettre les titres mais à la suite de ce que j'avais fait. Et les titres sont situés avant certaines questions et là ils se retrouvent à la fin de ma feuille.

    Donc au lieu de recommencer ma base, y a-t-il un moyen de faire un loop par rapport à un champ ID de ma base ?

  8. #28
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 150
    Points : 93
    Points
    93
    Par défaut
    en fait peut etre faudrait il faire une requete "double" comme par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    mysql = "SELECT * FROM questions"
     
    sqlTitre = mysql & " WHERE style = rien ORDER BY id"
     
    SqlQuestion = mysql & " WHERE style <> rien ORDER by id " 
     
    rsTitre = conn.execute (sqlTitre)
    rsQuestion = conn.execute (sqlQuestion)
    comme ca, tu peux d'un cote affiche les titres et de l'autre les questions


  9. #29
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 143
    Points : 38
    Points
    38
    Par défaut
    Voilà j'ai fini la mise en page et ça me convient très bien.

    Maintenant, je voudrais aborder le traitement de la feuille : le moment où la personne clique sur "Envoyer" après avoir remplit la feuille, et que toutes ces données s'enregistrent dans ma base Access.

    Donc j'ai créé une autre table "Réponses" où j'aimerais bien que chaque ligne corresponde à un utilisateur et que chaque colonne corresponde à une question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    | Nom utilisateur | Prénom | Question 1 | Question 2 | ....
    Est-ce que par hasard, je dois faire un deuxième recordset ?
    Comment je vais pouvoir identifier mes input pour les ajouter dans la table ?
    Et comment fonctionne le "INSERT INTO" ?

  10. #30
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 143
    Points : 38
    Points
    38
    Par défaut
    Bon en fait, j'ai trouvé une solution mais qui est assez complexe. Donc j'aimerais votre aide pour la simplifier :
    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
     
    <%
    set rs=server.createObject("adodb.recordset")
    rs.open "reponses", conn, 3, 3
    rs.addnew
     
    rs("1")=request.form("nom")
     
    rs.update
     
    rs.close
    set rs=nothing
     
    conn.close
    set conn=nothing
    %>
    Ce qui fait que je mets le résultat de mon Input "Nom" dans le champ "1" de ma table "Reponses".
    Ca fonctionne très bien.
    Mais au lieu d'écrire 45fois, la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rs("1")=request.form("nom")
    N'y a-t-il pas un moyen de mettre la variable "ID" et "Name" que j'ai utilisé dans mon loop ?

  11. #31
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 143
    Points : 38
    Points
    38
    Par défaut
    Bon j'ai essayé de mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    id=request("ID")
    Name=request("Name")
    pour déclarer les variables.

    Et après cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rs(id)=request.form(name)
    Mais il me renvoit une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Request object error 'ASP 0102 : 80004005' 
     
    Expecting string input 
     
    /fr/basseIndre/InformationsPratiques/reservation/sommeil/traitement.asp, line 12 
     
    The function expects a string as input.

  12. #32
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 150
    Points : 93
    Points
    93
    Par défaut
    re,

    est ce qu'il ne manquerait pas les "" comme par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rs("id")=request.form("name")
    ??

  13. #33
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 143
    Points : 38
    Points
    38
    Par défaut
    Ca ne marche pas plus, maintenant j'ai une autre erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ADODB.Recordset error '800a0cc1' 
     
    Item cannot be found in the collection corresponding to the requested name or ordinal. 
     
    /fr/basseIndre/InformationsPratiques/reservation/sommeil/traitement.asp, line 12

  14. #34
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 143
    Points : 38
    Points
    38
    Par défaut
    Comme je n'y suis pas arrivé, j'ai fait autrement. Au lieu de faire une boucle, je les ai toutes rentrées :

    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
     
    rs("1")=request.form("nom")
    rs("2")=request.form("prenom")
    rs("3")=request.form("age")
    rs("4")=request.form("annee")
    rs("5")=request.form("horaires")
    rs("6")=request.form("ancien")
    rs("8")=request.form("kms")
    rs("9")=request.form("temps")
    rs("10")=request.form("logement")
    rs("12")=request.form("engin")
    rs("13")=request.form("poste")
    rs("15")=request.form("sommeil")
    rs("17")=request.form("endormi")
    rs("18")=request.form("matin")
    rs("19")=request.form("apresmidi")
    rs("20")=request.form("nuit")
    rs("21")=request.form("reveils")
    rs("22")=request.form("qualite")
    rs("23")=request.form("degrade")
    rs("24")=request.form("repar")
    rs("25")=request.form("fatigue")
    rs("27")=request.form("apnees")
    rs("28")=request.form("ronfle")
    rs("29")=request.form("somnolence")
    rs("30")=request.form("sieste")
    rs("31")=request.form("reguliere")
    rs("32")=request.form("duree")
    rs("33")=request.form("moment")
    rs("34")=request.form("medoc")
    rs("36")=request.form("medocreg")
    rs("37")=request.form("medocnom")
    rs("39")=request.form("sommeilcg")
    rs("42")=request.form("estomac")
    rs("43")=request.form("digestifs")
    rs("44")=request.form("humeur")
    rs("45")=request.form("tension")
    J'ai 3 choses à vous demander maintenant :
    - Comment faire une vérification sur les champs (pour voir qu'ils ont bien été renseignés) ? Plutôt sur ma page ASP ou sur le fichier du traitement des données ?
    - Comment récupérer l'identifiant de session Windows pour l'enregistrer dans ma base ?
    - Et enfin, comment vérifier, lors de l'enregistrement des données dans la base, que les champs 1 et 2 (nom et prénom) ne sont pas déjà enregistrés ? En gros, comment faire pour que la personne remplisse une seule fois l'enquête ?

Discussions similaires

  1. migration de base access vers postgres
    Par greg_ggl dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 09/03/2006, 10h33
  2. [ODBC] Intranet en PHP : Lister les tables d'une base Access
    Par fblouet dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 28/10/2003, 14h46
  3. Crash Base Access
    Par Ronald G. dans le forum Access
    Réponses: 4
    Dernier message: 04/08/2003, 11h55
  4. Export base Access vers MySql
    Par jjn1er dans le forum Outils
    Réponses: 7
    Dernier message: 10/03/2003, 23h50
  5. [VB6] [ADO] Like sur base Access
    Par dlpxlid dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 24/01/2003, 11h03

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