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

QlikView Discussion :

Récupérer la valeur de la sélection dans une macro


Sujet :

QlikView

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 51
    Points : 22
    Points
    22
    Par défaut Récupérer la valeur de la sélection dans une macro
    Bonjour à tous,

    J'utilise une macro via un bouton afin de faire une requête update sur ma base sql server, le but est de modifier en stock mini d'un code article :

    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
    sub Connection
    
    set conn=CreateObject("ADODB.Connection")
    conn.Open "Driver={SQL Server};" & _
                       "Server=SRV-ADFILES;" & _
                       "Database=PMI;" & _
                       "UID=sa;" & _
                       "PWD=cegid.2008;"
    set rs=CreateObject("ADODB.recordset")
    STOCK = getVariable("STOCKMINIPROPOSE")
    CODEART = ????
    
    
    msgbox(CODEART)
    
    ' Database Update
    
    sql="UPDATE ARTICLE SET "
    sql=sql & "ARCNSTOMIN='" & STOCK & "'"
    sql=sql & " WHERE ARKTCODART='"&CODEART&"'"
    
    on error resume next
    conn.Execute sql
    if err <> 0 then
    msgbox("No update permissions! " & err )
    end if
    'End of the Update
    
    conn.close
    end sub
    
    function getVariable(varName)
    set v = ActiveDocument.Variables(varName)
    getVariable = v.GetContent.String
    end function
    Seulement, mon code article dépend de la sélection active, du champ "CODEARTICLE" -> Comment récupérer cette valeur ?

    Merci, bonne journée.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Tu peux utiliser GetSelectedValues.
    Tu dois aussi vérifier qu'une seule valeur a été sélectionnée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Set Sel=activedocument.fields("CODEART").getselectedvalues
    if sel.count=1 then
    msgbox sel.item(0).text
    else
    msgbox sel.count & " sélections faites"
    end if

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 51
    Points : 22
    Points
    22
    Par défaut
    Bonsoir,

    Merci FORMULARY, cela fonctionne très bien.

    En revanche, ce que je ne comprends pas, c'est que ma base de donnée est bien mise à jour quand je fais clique sur "Tester" le code, mais lorsque j'appuie directement sur le bouton exécutant la macro, ma base n'est pas mise à jour

    Une idée ?

    Merci !

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Bizarre ...
    1) Vérifie le niveau de sécurité des macros.
    2) Ajoutes un msgbox au début de la macro et clique sur le bouton. Ca permettra au moins de vérifier que la macro est bien appelée.
    3) Retire le msgbox du début de macro et place-le juste avant l'update, pour voir si tu arrives jusque là.
    4) Vérifie ta clause Update, mais là ça devrait le faire puisque ça tourne en cliquant Tester.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 51
    Points : 22
    Points
    22
    Par défaut
    Bonjour,

    J'ai bien "outrepassé" les sécurités dans l'application, et dans les macros j'ai "Accès système", et "Autoriser les accès système".

    Un msgbox en 1ère ligne ne se lance même pas, idem avant l'update !

    Effectivement testée à coté, la requête update fonctionne bien...


  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Vérifie l'action que tu as paramétré sur le bouton.
    Prend l'habitude aussi d'être "Case Sensitive" car QV l'est à pas mal d'endroits (mais pas partout).
    C'est peut-être tout simplement ça qui empêche le déclenchement de la macro.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 51
    Points : 22
    Points
    22
    Par défaut
    Bonsoir,

    Je ne comprends pas... Même en créant un simple bouton "test" avec une macro avec la ligne de code msgbox("test"), le clic sur le bouton ne lance pas le message !
    Précieusement, je procède ainso : créer un bouton, clic droit, propriétés, onglet action, ajouter une action, Exécuter une macro, je luis donne un nom à droite, puis éditer le module, la je place ma ligne de code, et valide... Le clic sur le bouton test dans l'éditeur m'affiche bien la fenêtre test. Mais rien quand je clique sur mon bouton...

    Idem dans un nouveau projet, sur plusieurs machines testée. Édition personnelle pour le moment en attentant la licence monoposte.

    Je fais peut-être une erreur de manip, ou il manque un paramètre ??

    Merci.

  8. #8
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 529
    Points
    2 529
    Billets dans le blog
    6
    Par défaut
    Question bête (désolé mais il vaut mieux être sur) : vous mettez bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sub ma_fonction
    msgbox "coucou"
    end sub
    dans la fenêtre de macro, vous mettez bien que ce sont des macros "VB" et vous mettez bien
    dans votre action de bouton ?

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 51
    Points : 22
    Points
    22
    Par défaut
    Bonjour,

    Merci PhunkyBob, en effet, le nom de ma fonction dans l'éditeur et le nom de la macro dans les propriétés action du bouton ne correspondait pas... Je pensais que le code saisi s'appliqait directement au bouton, mais visiblement l'éditeur est global, donc il faut préciser au bouton quelle fonction aller chercher

    Merci beaucoup !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/10/2008, 13h28
  2. Réponses: 4
    Dernier message: 03/08/2007, 14h09
  3. Récupérer la valeur d'un champ dans une requête
    Par romaintaz dans le forum JDBC
    Réponses: 7
    Dernier message: 18/08/2006, 09h13
  4. Récupérer la valeur des champs calculés dans une requète SQL dans vba
    Par FrédéricCM dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 28/06/2006, 16h29
  5. Récupérer les valeur d'un énuméré dans une string
    Par Oliv_75 dans le forum SL & STL
    Réponses: 5
    Dernier message: 28/09/2005, 00h55

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