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 :

Analyse croisée en ASP


Sujet :

ASP

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 30
    Points : 10
    Points
    10
    Par défaut Analyse croisée en ASP
    Bonjour à tous!

    Je suis nouvelle ici, et je ne sais pas si quelqu'un pourra m'aider. Mon problème concerne un problème d'affichage de données à partir d'une BDD.

    Je voudrais savoir s'il est possible de faire des requêtes analyse croisée ( faisable sous Access) en ASP.

    Merci pour votre aide

  2. #2
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Salut,

    C'est tout à fait possible, mais c'est plus long.
    Le plus simple est de faire ta requete sous Access (avec l'interface graphique) et de l'attaquer avec l'ASP comme tu le ferais pour une table.

    A+

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 30
    Points : 10
    Points
    10
    Par défaut
    Merci pour ta réponse mais je ne comprend pas trop. Comme je commence l'ASP, je ne sais pas trop comment faire.

    Quand tu dis trop long? ça veut dire?

    Non parce que par exemple, j'ouvre ma connexion à la base, je copie-colle ma requête SQL d'Access qui m'a permise de faire la requête analyse croisée mais quand je veux faire afficher les données il me met "erreur..."

    Je ne vois pas du tout comment il peut m'afficher en en-tête de ligne des noms de progiciels, en en-tête de colonne les différentes catégories de prix et dans les cases du tableau, leur valeur c'est-à-dire les différents prix correspondants aux progiciels et à sa catégorie de prix.

    Je ne sais pas si je suis assez claire. Sinon suis dispo pour plus de détails.

    Merci encore pour ton aide.

  4. #4
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 30
    Points : 10
    Points
    10
    Par défaut
    Voilà ce que j'ai essayé de 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
    <!-- #include file="_connexion.asp"-->
     
    <% Sql = "SELECT * FROM tblCession ORDER BY Affichage"
    	Set Rs = Server.CreateObject("ADODB.Recordset")
    	Rs.open Sql,conn,3,3,1 %>
     
    <% Sq2 = "TRANSFORM Sum(tblPxCession.PrixKeuros) AS SommeDePrixKeuros SELECT tblProgiciel.NomProg FROM tblProgiciel INNER JOIN (tblCession INNER JOIN tblPxCession ON tblCession.IdCession = tblPxCession.IdCession) ON tblProgiciel.IdProg = tblPxCession.IdProg GROUP BY tblProgiciel.NomProg PIVOT tblCession.TypeFacturation"
    	Set Px = Server.CreateObject("ADODB.Recordset")
    	Px.open Sq2,conn,3,3,1 %>
     
      <table class="text"><tr bgcolor="#FFB66C"><td>Nom du progiciel</td>
      <td>Type de progiciels</td>
      <td>1 utilisateur</td>
      <td>5 utilisateurs</td>
      <td>10 utilisateurs</td>
      <td>20 utilisateurs</td>
      <td>par site</td>
      <td>nous consulter</td></tr>
    <%
    	Response.write "<tr>"
    	Response.write "<td>Progiciels</td>"
    	While NOT Rs.EOF
    	Response.write "<td>" & Rs.Fields("TypeFacturation").Value & "</td>"
    	Rs.Movenext
    	Wend
    	Response.write "</tr>"
    %> 
    <% 
    	While NOT Px.EOF
    		Response.write "<tr>"
    		Response.write "<td>" & Px.Fields("NomProg").Value & "</td>"
    			Response.write "<td>" & Px.Fields("PrixKeuros").Value & "</td>"
    		Response.write "</tr>"
    		Px.Movenext
    	Wend
     
    %>
     
     
    <% Conn.close : Set Conn=nothing    %>
      </table>
    Et voilà ce que ça me donne :

    ADODB.Recordset erreur '800a0cc1'
    Impossible de trouver l'objet dans la collection correspondant au nom ou à la référence ordinale demandé.

    /base/panorama/prix.asp, ligne 81

    Alors? Je ne comprend plus...

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

    Quelle est la ligne 81 ?

  6. #6
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 30
    Points : 10
    Points
    10
    Par défaut
    Pardon, c'est un oublie de précision, la ligne 81 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.write "<td>" & Px.Fields("PrixKeuros").Value & "</td>"

  7. #7
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    451
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 451
    Points : 287
    Points
    287
    Par défaut
    plutot que Rs.Fields("TypeFacturation").Value

    essaye :

    <%=Rs("TypeFacturation")%>

    che po si ca arrangera ton pb mais ca marche et c'est - long...

  8. #8
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 30
    Points : 10
    Points
    10
    Par défaut
    Non, c'est dans la 2e boucle que ça ne fonctionne pas. Je voudrai afficher le prix et non le type de facturation.

    La 1ère boucle marche impec mais là seconde coince et j'ai ça comme message d'erreur (cf post précédent).

  9. #9
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    451
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 451
    Points : 287
    Points
    287
    Par défaut
    a mon avis il faut refaire ta 2°me requete avec une autre syntaxe plus specifique a asp

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

    Et si tu essaies avec l'indice du recordset ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Response.write "<td>" & Px.Fields(0).Value & "</td>"

  11. #11
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    451
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 451
    Points : 287
    Points
    287
    Par défaut
    je pense que ta requete a une syntaxe mauvaise pour l'asp

    j'ai essayé de la refaire a part que je sais pas à koi correspont [PIVOT tblCession.TypeFacturation]



    req = "SELECT Sum(tblPxCession.PrixKeuros),tblProgiciel.NomProg "
    req=req+"FROM tblProgiciel,tblPxCession,tblCession "
    req=req+"where tblProgiciel.IdProg = tblPxCession.IdProg "
    req=req+"and tblCession.IdCession = tblPxCession.IdProg "
    req=req+"and tblCession.IdCession = tblPxCession.IdProg "
    req=req+"GROUP BY tblProgiciel.NomProg"




    pour la sum : <%=recordset.fields(0)%>

    pour NomProg : <%=recordset.fields(1)%

  12. #12
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 30
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par pc75
    Re,

    Et si tu essaies avec l'indice du recordset ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Response.write "<td>" & Px.Fields(0).Value & "</td>"
    Quand je fais ça, il me répète la 1ère colonne avec les progiciels. Donc j'ai sur 2 colonnes, les noms des progiciels. Il ne m'affiche pas les prix.

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

    Désolé.
    Peut-être que dans le forum Access ?

    Bon courage

  14. #14
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 30
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par philippe123
    je pense que ta requete a une syntaxe mauvaise pour l'asp

    j'ai essayé de la refaire a part que je sais pas à koi correspont [PIVOT tblCession.TypeFacturation]



    req = "SELECT Sum(tblPxCession.PrixKeuros),tblProgiciel.NomProg "
    req=req+"FROM tblProgiciel,tblPxCession,tblCession "
    req=req+"where tblProgiciel.IdProg = tblPxCession.IdProg "
    req=req+"and tblCession.IdCession = tblPxCession.IdProg "
    req=req+"and tblCession.IdCession = tblPxCession.IdProg "
    req=req+"GROUP BY tblProgiciel.NomProg"




    pour la sum : <%=recordset.fields(0)%>

    pour NomProg : <%=recordset.fields(1)%
    J'ai essayé de faire ce que tu m'as dit il m'affiche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Erreur d'exécution Microsoft VBScript erreur '800a01a8' 
    Objet requis: '' 
     
    /base/panorama/prix3.asp, ligne 82
    et à la ligne 82 j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <% = recordset.fields(0) %>
    Je ne comprends plus rien, il ne manque pas de "...

    Je viens de débuter en ASP, ça explique pourquoi je l'écris mal...


    Ce que je veux afficher à l'écran en fait :

    Nom | Px 1 utilisateur | Px 5 utilisateurs | Px 10 utilisateurs | Px 20 ut.|
    P1__|__________10€|____________15€|___________30€ |_____50€|
    P2__|__________15€|____________20€|___________35€ |_____55€|
    P3__|_____________|____________15€|___________50€ |_____70€|
    P4__|__________20€|_______________|___________40€ |________|

    Dans ma base, la table de jointure (tblPxCession) se constitue ainsi

    Id|IdProg|IdCession|PrixKeuros|
    1 |12___|1_______|10€______|
    2 |12___|2_______|15€______|
    3 |12___|3_______|30€______|
    4 |12___|4_______|50€______|
    5 |40___|1_______|15€______|
    6 |40___|2_______|20€______|
    7 |40___|3_______|35€______|
    8 |40___|4_______|55€______|
    9 |7____|2_______|15€______|
    10|7____|3_______|50€______|
    11|7____|4_______|70€______|
    etc etc

    Voilà. c'est peut-être plus clair.

    Merci encore pour votre aide

  15. #15
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 30
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par pc75
    Re,

    Désolé.
    Peut-être que dans le forum Access ?

    Bon courage
    Sur Access, j'arrive à le faire sans problème mais au boulot on me demande de le faire sous ASP, parce qu'il faut que ça s'affiche sur une page ASP pour leur site Internet.

    Merci encore.

  16. #16
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    451
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 451
    Points : 287
    Points
    287
    Par défaut
    comme ca?
    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
    <%
    req = "SELECT Sum(tblPxCession.PrixKeuros),tblProgiciel.NomProg " 
    req=req+"FROM tblProgiciel,tblPxCession,tblCession " 
    req=req+"where tblProgiciel.IdProg = tblPxCession.IdProg " 
    req=req+"and tblCession.IdCession = tblPxCession.IdCession " 
    req=req+"GROUP BY tblProgiciel.NomProg"
    Set Px = Server.CreateObject("ADODB.Recordset") 
    Px.open req,conn,3,3,1
    %> 
    <table>
       <tr>
          <td>prix</td>
          <td>nom</td> 
       </tr>
       <% 
        While NOT Px.EOF%> 
          <tr> 
             <td><%=Px.Fields(0)%></td> 
             <td><%=Px.Fields(1)%></td> 
          </tr>
          <% 
          Px.Movenext 
       Wend
       %> 
    </table>

  17. #17
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 30
    Points : 10
    Points
    10
    Par défaut
    ça marche mais il me fait la somme des prix et s'arrête aux 4 premiers enregistrements alors qu'il y en a au moins 70.

    J'ai fais le schéma de ce que je veux faire sur mon précédent post.

    Le "sum" est issu d'Access car pour faire la requête d'analyse croisée, Access a fait la requête SQL suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    TRANSFORM Sum(tblPxCession.PrixKeuros) AS SommeDePrixKeuros
    SELECT tblProgiciel.NomProg
    FROM tblProgiciel INNER JOIN (tblCession INNER JOIN tblPxCession ON tblCession.IdCession = tblPxCession.IdCession) ON tblProgiciel.IdProg = tblPxCession.IdProg
    GROUP BY tblProgiciel.NomProg
    PIVOT tblCession.TypeFacturation;
    Merci encore.

  18. #18
    Membre averti Avatar de pmboutteau
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Février 2005
    Messages : 601
    Points : 420
    Points
    420
    Par défaut
    y'a un composant OWC qui permet de faire les analyses croisées dynamiques.

  19. #19
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 30
    Points : 10
    Points
    10
    Par défaut
    J'ai pas vraiment trouvé ce que c'était et dans les recherches Google, ça s'apparente à ASP.NET.

    Est-ce que tu pourrais m'expliquer plus en détails?

  20. #20
    Membre averti Avatar de pmboutteau
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Février 2005
    Messages : 601
    Points : 420
    Points
    420
    Par défaut
    Je peux pas t'aider j'ai jamais utilisé mais regarde dans les rubriques d'aides sur le VB dans ton dossier Office. Tu dois avoir un dossier Owc. Je crois que c'est le composant owc.PivotTable mais je suis pas sûr

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 7
    Dernier message: 04/09/2011, 18h14
  2. affichage requête analyse croisée en ASP
    Par kamalkam dans le forum ASP
    Réponses: 1
    Dernier message: 10/05/2006, 23h46
  3. Prob Req Analyse Croisée
    Par martonpylon12 dans le forum Access
    Réponses: 6
    Dernier message: 18/06/2005, 15h28
  4. Analyse croisée ?
    Par Maludi dans le forum Access
    Réponses: 3
    Dernier message: 15/06/2005, 12h43
  5. [ADO] analyse croisée dans un DBGRID
    Par cdlr27 dans le forum Bases de données
    Réponses: 1
    Dernier message: 01/12/2004, 10h57

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