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

Macros et VBA Excel Discussion :

création TCD source AS400 récupérée par SQL


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 86
    Par défaut création TCD source AS400 récupérée par SQL
    Bonjour à tous,

    Je viens d'expérimenter sur Excel mon premier TCD dont la source est un fichier AS400 que j'ai récupéré via une commande SQL.

    Les paramètres de mon "select...where" sont en fait des valeurs saisies par l'utilisateur dans des cellules de mon fichier Excel et ça fonctionne à merveille.

    Seulement on me demande à présent de pouvoir saisir plusieurs valeurs dans les paramètres et là au secours comment puis-je faire ?!

    Une lecture de mon code sera certainement plus explicite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    agence = Range("E2")
    compte = Range("E3")
    datdeb = Range("I2")
    datfin = Range("I3")
     
    Range("A106").Activate
     
    ActiveSheet.PivotTableWizard SourceType:=xlExternal, SourceData:=Array("SELECT SCQPOS, SCQAGC, SCQDPT, SCQDFA FROM SCQPOS WHERE SCQAGC='" & agence & "' and SCQSCE=40 and SCQCLS= '" & compte & "' and SCQTYP=1 and SCQPOS=1 and SCQDFA BETWEEN '" & datdeb & "' AND '" & datfin & "'"), BackgroundQuery:=False, _
    Connection:=Array(Array( _
    "ODBC;DRIVER={Client Access ODBC Driver (32-bit)};SYSTEM=HEPSTG1;DBQ=ECFH0;DFTPKGLIB=ECHF0;LANGUAGEID=ENU;PKG=QGPL/DEFAULT(IBM),2,0,1" _
    ), Array(",0,512;"))
    ActiveSheet.PivotTables("Tx").PivotCache.BackgroundQuery = True
    Ca fonctionne sur une seule agence saisie dans la cellule E2 et un seul compte saisi dans la cellule E3 mais on me demande de faire la requête avec plusieurs agences et plusieurs comptes....

    une aide svp !! Merci

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

    là c'est du SQL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE SCQAGC='" & agence & "'
    remplacé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE SCQAGC In (" & listeAgences & ")
    soit tu saisis dans la cellule soit tu génères une chaine concaténée à partir d'une plage de cellules.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 86
    Par défaut
    Tu es vraiment génial Cafeine ! Merci beaucoup.

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

Discussions similaires

  1. [Système/Fichiers/API] Création d'une source de donnée par programmation : SQLConfigDataSource
    Par kmaniche dans le forum C++Builder
    Réponses: 1
    Dernier message: 26/04/2011, 23h05
  2. Réponses: 1
    Dernier message: 20/10/2008, 18h30
  3. Format d'une date récupérée par une requête sql
    Par ZIED dans le forum Zend Framework
    Réponses: 4
    Dernier message: 24/03/2008, 23h17
  4. Réponses: 3
    Dernier message: 21/06/2004, 11h20
  5. Comment obtenir la description des tables par SQL
    Par rcastaldi dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 15/03/2004, 14h13

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