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. #1
    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 Enquête - base Access
    On m'a demandé récemment d'établir un script pour une enquête médicale.
    L'enquête sera composé de champs libres (comme nom/prénom) et de boutons radios (souvent oui/non).

    Les conditions qui se posent, c'est qu'il doit être en ASP (le PHP n'est pas supporté par le serveur) relié à une base Access (pas de sql car le serveur intranet ne le supporte pas).

    J'aimerais donc qu'une personne renseigne les champs de l'enquête, clique sur un bouton (ex. : Envoyer) et que ces données s'enregistrent dans une base Access.
    Par la suite, le médecin pourra consulter d'un côté le traitement globale (% de certains résultats si possible sous forme graphique) et de l'autre, les réponses qu'ont rentrées chaque personne (une fiche pour une personne, en clair l'enquête mais avec les champs remplies).

    Le problème, c'est que j'ai très peu de connaissances en ASP et je n'arrive pas à savoir par où commencer mon programme.

    Merci d'avance de votre aide.

  2. #2
    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
    Bonjour,

    Pour commencer tu peux deja faire ton formulaire, ensuite etablir une connexion avec la base de donnee dans laquelle tu vas enregistrer les reponses...

    en fait tu en es ou pour l'instant ?

  3. #3
    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 l'instant, je viens de faire le formulaire en dur. C'est à dire que dans mon fichier (html pour l'instant), j'ai fait un formulaire avec les questions directement isncrites dedans.

    Le problème, c'est qu'on vient de me dire qu'il fallait que j'envisage le futur. C'est à dire que si quelqu'un d'autre me demande un formulaire du même style, je dois pouvoir le faire vite fait sans trop de changement.

    Il faudrait que je stock dans ma base Access les questions et les réponses. Mais je ne sais pas comment afficher les questions que je stock dans ma base Access.
    De plus, comment stocker les questions oui/non et celles à champ libre ?

  4. #4
    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,

    tu peux faire dans ta base une table que tu remplis avec tes questions,
    apres pour les afficher, une fois la connexion avec la base etablie, et ton recordset cree, tu peux pour recuperer tes questions faire par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <table>
     
    rs.movefirst
    Do while rs.eof
    response.write ("<tr>")
    response.write ("<td>" & rs("champsquestion") & "</td>")
    response.write ("<td><input type='text'></td>")
    response.write ("</tr>")
    rs.movenext
    loop
    </table>
    cela fera une loop dans la table concernee et pour chaque enregistrement present dans cette table, creera une ligne composee d'une question et d'un champs texte pour les reponses. C 'est un exemple, il faut l'adapter...


    je ne peux egalement que te conseiller de regarder ce tutoriel vraiment utile :
    tutoriel asp

    http://florian.developpez.com/asp/


    info concernant les connexions
    http://www.developpez.net/forums/vie...onnexion<br />

    apres n'hesites pas a poser des questions si tu as des problemes

  5. #5
    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
    Si je comprends bien, le nom :
    correspond au nom du champ où je mets mes questions.

    Et ça affiche à chaque fois dans une autre ligne de mon tableau, les questions de ma base Access. Et les réponses seront toutes des champs libres.
    Le problème, c'est qu'après je veux analyser ces réponses automatiquement donc si la réponse n'est pas comme je voulais, ça plante mon analyse.

    Donc comment je pourrais faire, pour certaines de mes questions, mettre un bouton radio comme solution de réponse ?

  6. #6
    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,

    c pour ca que ce n'etait qu'un exemple

    ben sinon dans ta table question, tu peux mettre une colonne qui decidera quel type de reponse est mis en relation avec la question, comme par exemple :

    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
     
     
    pour la base access : 
     
    questions  || typereponse   ||
    -------------------------------
    -------------------------------
    ques1      || typetexte     ||
    --------------------------------
    ques2      || typeradio     ||
     
    etc....
     
     
    et pour le code de la page :
    <table> 
     
    rs.movefirst 
    Do while rs.eof 
    response.write ("<tr>") 
    response.write ("<td>" & rs("champsquestion") & "</td>") 
     
    If rs("typedereponse") = "typetexte" THEN
    response.write ("<td><input type='text'></td>") 
    ELSE
    response.write ("<td><input type='radio' name ='reponse'></td>") 
    END IF 
    response.write ("</tr>") 
    rs.movenext 
    loop 
    </table>

  7. #7
    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
    Merci beaucoup, je vais déjà essayé tout ça.
    J'aurais sûrement d'autres questions qui arriveront par la suite.

    Ah si une dernière : pour enregistrer les réponses à ces questions dans la même base mais dans une table différente biensûr, comment je peux préparer le terrain ?
    Je sais qu'en html, il faut une action au formulaire (du style traitement.asp) quand on fait Envoyer pour traiter les données.
    Mais là comme les questions sont générées automatiquement, comment je peux savoir à quelle question correspond quelle réponse ?

  8. #8
    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,

    tes questions doivent avoir un identifiant unique (ID) dans la base access.

    il faudra donc que les champs dans lesquels seront rentres les reponses y fassent reference

    par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    response.write("<input type ='text' id ='"& rs("idquestion")&"' />")
    pour ce qui est du traitement, ton formulaire devra est etre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form name='unnom' method='post'>
    il faudra apres faire un INSERT INTO dans la table ciblee, tu auras donc dans ta table par exemple "reponse" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    refquestion || reponse ||
    -----------------------------
    -----------------------------
    idques1    || reponse 1       
    ------------------------------
    idques2    ||reponse   2       
     
    etc...

  9. #9
    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 je viens d'essayer mais on me retourner une erreur sûrement à cause du fichier de connexion mais je ne trouve pas l'erreur.

    Voici mon fichier de connexion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <%
    dbPath = Server.MapPath("sommeil.mdb")
    Set Conn = Server.CreateObject("ADODB.Connection")
    Set rstAutorisation = Server.CreateObject("ADODB.Recordset")
    MM_data_STRING = "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=F:\Data\web-150.35.44.3\API_recette\fr\basseIndre\InformationsPratiques\reservation\sommeil\sommeil.mdb;Persist Security Info=False"
    Conn.Open = MM_data_STRING
    %>
    Et voici mon code 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
     
    <!-- #include file="connexion.asp" -->
    <%
     
    sql = "SELECT * FROM questions "
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.open sql, conn,3,3
     
    %>
     
    <html>
    <head>
    <title>Le Sommeil</title>
    </head>
     
    <body>
     
     
    <table>
    <%
    rs.movefirst
    Do while rs.eof
    response.write ("<tr>")
    response.write ("<td>" & rs("Questions") & "</td>")
     
    If rs("Type") = "texte" THEN
    response.write ("<td><input type='text'></td>")
    ELSE
    response.write ("<td><input type='radio' name ='reponse'></td>")
    END IF
    response.write ("</tr>")
    rs.movenext
    loop
    %>
     
    </table>
     
    </body>
    </html>
    Voyez-vous d'où vient l'erreur ?

  10. #10
    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
    Ah et voici l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Microsoft JET Database Engine error '80004005' 
     
    The Microsoft Jet database engine cannot open the file 'F:\Data\web-150.35.44.3\API_recette\fr\basseIndre\InformationsPratiques\reservation\sommeil\sommeil.mdb'. It is already opened exclusively by another user, or you need permission to view its data. 
     
    /fr/basseIndre/InformationsPratiques/reservation/sommeil/connexion.asp, line 6

  11. #11
    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,

    Et comme ca ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <% 
    dbPath = Server.MapPath("sommeil.mdb") 
    Set Conn = Server.CreateObject("ADODB.Connection") 
    Set rstAutorisation = Server.CreateObject("ADODB.Recordset")
     
    MM_data_STRING = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & dbpath & " ;"
     
    Conn.Open = MM_data_STRING 
    %>

  12. #12
    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
    Nan pas mieux, maintenant il me dit que ça vient de la ligne 11.
    J'ai déjà eu des problèmes comme ça. Ca venait de la base Access qui était sécurisée, mais là j'ai mis aucune sécurité.

  13. #13
    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,

    voici des infos, peut etre que cela va t'aider
    http://support.microsoft.com/kb/306269/fr

  14. #14
    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
    Le problème est que je n'ai pas accès au serveur donc impossible de faire certaines des résolutions.
    J'ai mis "Contrôle total" sur le dossier où se trouve mes fichiers. Je n'ai plus d'erreur mais j'ai une page blanche maintenant.

  15. #15
    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
    quand tu regardes la source de ta page, il y a quoi dedans ?

  16. #16
    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
    Seulement ç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
     
    <html>
    <head>
    <title>Le Sommeil</title>
    </head>
     
    <body>
     
    <form name='sommeil' method='post'>
    <table>
     
     
    </table>
    </form>
     
    </body>
    </html>

  17. #17
    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
    et en changeant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sql = "SELECT * FROM questions " 
    Set rs = Server.CreateObject("ADODB.Recordset") 
    rs.open sql, conn,3,3
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sql = "SELECT * FROM questions " 
    Set rs = Server.CreateObject("ADODB.Recordset") 
    set rs = conn.execute (sql)
    ??

  18. #18
    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
    J'ai changer ce que tu m'as dit, et je vois juste des zones de texte et des boutons radios.

    Par contre, j'ai changé aussi un peu le bout de code que tu m'avais passé pour la boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <%
    rs.movefirst
    Do while not rs.eof
    If rs("Type") = "texte" THEN
    response.write ("<td><input type='text'></td>")
    ELSE
    response.write ("<td><input type='radio' name ='reponse'></td>")
    END IF
    response.write ("</tr>")
    rs.movenext
    loop
    %>
    [/code]

  19. #19
    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
    ok mais tu n'affiches pas la question en fait. tu as enleve
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    response.write ("<td>" & rs("Questions") & "</td>")
    ??


    en fait la normalement, il doit t'afficher autant de lignes que tu as d'enregistrements dans ta base, mais si tu n'afiches pas le texte correspondant...

  20. #20
    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
    J'ai réussi à afficher ce que je voulais.
    J'ai ma question et à côté le type de réponse.

    Maintenant, je voudrais savoir, pour les boutons radios, j'ai souvent 2 réponses au choix. Comment afficher ces choix ? Je pense rajouter une colonne dans ma base Access avec les choix possibles mais comment les afficher si nécessaire ?

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