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

Access Discussion :

Requête analyse croisée


Sujet :

Access

  1. #1
    Membre habitué Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Points : 142
    Points
    142
    Par défaut Requête analyse croisée
    Bonjour,

    J'ai voulu mettre en pratique le tutoriel de Fabrice CONSTANS concernant la création de requêtes d'analyses croisées, malheureusement j'ai une erreur dans mon code que je n'arrive pas à solutionner.

    Voici le 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
    Dim Sql As String   'déclare la variable Sql
     
     
        Sql = "TRANSFORM Sum(nz([dbo_VLIGNES_FACTVTE]![NLVTOTNET],0)) AS Total"
        Sql = Sql & "SELECT Format([dbo_VLIGNES_FACTVTE]![DLVINVOICEDAT],'yyyy') AS Année,"
        Sql = Sql & "dbo_VLIGNES_FACTVTE.ALVNATURE AS Nature, dbo_VLIGNES_FACTVTE.ALVREP1 AS Cial"
        Sql = Sql & "FROM dbo_VLIGNES_FACTVTE"
        Sql = Sql & "WHERE (((Format([dbo_VLIGNES_FACTVTE]![DLVINVOICEDAT],'yyyy'))=Format(Date(),'yyyy')"
        Sql = Sql & "Or (Format([dbo_VLIGNES_FACTVTE]![DLVINVOICEDAT],'yyyy'))=Format(Date(),'yyyy')-1)"
        Sql = Sql & "AND ((dbo_VLIGNES_FACTVTE.ALVREP1)= " & Me.Représentant & ""
        Sql = Sql & "AND ((Format([dbo_VLIGNES_FACTVTE]![DLVINVOICEDAT],'mm'))<= " & Format(Me.txtFin, "mm") & "))"
        Sql = Sql & "GROUP BY Format([dbo_VLIGNES_FACTVTE]![DLVINVOICEDAT],'yyyy'),"
        Sql = Sql & "dbo_VLIGNES_FACTVTE.ALVNATURE, dbo_VLIGNES_FACTVTE.ALVREP1"
        Sql = Sql & "PIVOT Format([dbo_VLIGNES_FACTVTE]![DLVINVOICEDAT],'mm');"
     
     
            DoCmd.DeleteObject acQuery, "R110_Gen_Temp_AC1"  'supprime la requête analyse croisée
            CurrentDb.CreateQueryDef "R110_Gen_Temp_AC1", Sql 'crée la nouvelle requête
            DoCmd.OpenQuery "R110_Analyse_Nature"  'ouvre la requête
    Impossible de créer la requête.

    Avez vous une idée

    Merci pour votre aide

    Daniel

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour Daniel.

    Au premier coup d'oeil je vois qu'il y a un problème d'espaces dans ta string SQL.

    Mon conseil : Lorsque que tu fais des requêtes sous VBA, n'oublie jamais de les deboguer. Un petit affichage dans la fenetre Execution de l'environnement VBA.

    Pour le deboggage regarde l'excellent tuto de Cafeine (toujours lui 8) ) http://cafeine.developpez.com/access...el/debugprint/
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    merci Loufab, je me permets juste d'ajouter que supprimer la requête est inutile ... alors que ce code suffirait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentDb.QueryDefs("R110_Gen_Temp_AC1").SQL =  Sql
    NB : en effet il manque des espaces entre tes concaténations de lignes de SQL ...
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  4. #4
    Membre habitué Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Points : 142
    Points
    142
    Par défaut Requête analyse croisée
    Bonjour,

    Grâce aux conseils de LOUFAB, j'ai trouvé la solution de mon problème et t'en remercie vivement.

    J'avais parcouru ce tutoriel concernant le débogage VBA, mais j'avoue que je n'y ai pas pensé sur le coup.

    Je tiens également à te féliciter pour les 2 tutoriels sur les "Formulaires de recherche" et je suis impatient de dévouvrir la suite.

    Merci également à Caféine qui est toujours de bon conseil.

    Grâce à vous j'avance doucement certe, mais j'avance. Merci encore.

    Daniel

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 04/09/2011, 18h14
  2. Requête analyse croisée sous SQL SERVER
    Par motus_z dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/02/2006, 16h54
  3. Zones vides dans Requête Analyse croisée
    Par sbeprod dans le forum Access
    Réponses: 2
    Dernier message: 12/12/2005, 14h03
  4. Requête Analyse Croisée
    Par Daniel MOREAU dans le forum Access
    Réponses: 1
    Dernier message: 07/11/2005, 18h13
  5. Requêtes analyses croisées sous SQL Server 2000
    Par callo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 24/09/2005, 19h27

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