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

Macro Discussion :

Récupération des résulats d'une macro dans des macro-variables


Sujet :

Macro

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 376
    Points : 199
    Points
    199
    Par défaut Récupération des résulats d'une macro dans des macro-variables
    Bonjour,

    Je souhaiterai récupérer le résultat de 3 colonnes de ma requête.
    Les colonnes 1 et 2 sont de type alphanumérique et la colonne 3 numérique.
    Ma requête retourne une seule ligne.

    Voici mon 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
     
    %MACRO mamacro(param1);
    	PROC SQL;
    		SELECT col1 , col2 , col3 INTO : a, : b, : c
    		FROM table
    		WHERE DATE BETWEEN "&date_deb"dt AND "&date_fin"dt
    		AND id = 1;
    	QUIT;
    	"&a,&b";&c;
    %MEND;
    %mamacro(01MAR2007:00:00:00);
    %PUT &a; ERROR 180-322: Instruction incorrecte ou mal utilisée.
    %PUT &b; ERROR 180-322: Instruction incorrecte ou mal utilisée.
    %PUT &c; ERROR 180-322: Instruction incorrecte ou mal utilisée.
    Merci

  2. #2
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Points : 6 064
    Points
    6 064
    Par défaut
    Tu n'aurais pas oublié %PUT &a,&b, &c;

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 376
    Points : 199
    Points
    199
    Par défaut
    Merci pour cette réponse rapide.
    Le %put est une bonne idée mais je pense que le souci est autre part.

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    %MACRO mamacro(param1);
    	PROC SQL;
    		SELECT col1 , col2 , col3 INTO : a, : b, : c
    		FROM TABLE
    		WHERE DATE BETWEEN "&date_deb"dt AND "&date_fin"dt
    		AND id = 1;
    	QUIT;
           %PUT  &a,&b,&c;
    	"&a,&b";&c;
    %MEND;
    %mamacro(01MAR2007:00:00:00);
    NOTE: Procédure SQL a utilisé (Durée totale du traitement) :
          temps réel          0.00 secondes
          temps UC            0.00 secondes
     
    resultat1                         ,resultat2   ,resultat3
     
    NOTE: Ligne générée par la variable macro "A".
    1          resultat1 
               ----
               180
    NOTE: Ligne générée par la variable macro "C".
    1     resultat3
          -----
          180
     
    ERROR 180-322: Instruction incorrecte ou mal utilisée.
     
    %PUT &a;
    %PUT &b;
    %PUT &c;

  4. #4
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Points : 6 064
    Points
    6 064
    Par défaut
    je ne comprends rien à ton code. Si tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    %PUT  &a,&b,&c;
    "&a,&b";&c;
    Qu'imagines-tu obtenir hormis une erreur ? => la deuxième ligne est à supprimer.

    A qui sert param1 dans ton code et d'où viennent &date_deb et &date_fin ? On ne s'en occupe pas ici n'est-ce pas ?

    Ceci fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    PROC SQL noprint;
    SELECT sex , height , weight INTO : a, : b, : c
    FROM sashelp.class
    WHERE name = "Alfred";
    QUIT;
    %PUT  &a,&b,&c;

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 376
    Points : 199
    Points
    199
    Par défaut
    Merci datametric. Tu as raison %PUT &a,&b,&c; suffit.

    Pour les &date_deb , &date_fin et param1 , je m'excuse, j'avais oublié de les enlever pour l'exemple.

    Merci beaucoup

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

Discussions similaires

  1. Faire une boucle sur des OptionButton d'une feuille dans une userform
    Par Marty57070 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/06/2015, 08h23
  2. Réponses: 3
    Dernier message: 13/08/2014, 19h14
  3. Afficher des données d'une BD dans des Textbox
    Par mazdahmen dans le forum ASP.NET
    Réponses: 7
    Dernier message: 15/09/2010, 02h41
  4. Réponses: 2
    Dernier message: 06/06/2010, 16h15
  5. [ODBC] enregistrement des résultat d'une requete dans des variables
    Par maraly dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 01/02/2007, 15h24

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