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

VBA Access Discussion :

[VBA] Query ou SQL


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : Juillet 2006
    Messages : 235
    Par défaut [VBA] Query ou SQL
    Bonjour,

    Je dispose d'une requete sous la forme suivante :

    Avec Notice qui prends toutes les valeurs possibles, type Long
    et Redemption qui contient les valeurs suivantes : D,W,BM,M,SA,A,>A

    Nom Notice Redemption
    Test1 30 D
    Test2 30 M
    Test3 45 SA


    et ainsi de suite

    Je dois ensuite créer des requetes pour trouver le nb de fonds qui contiennent les caractéristiques suivantes :

    Redemption = D et notice<30
    Redemption = D et notice<45
    Redemption = D et notice<90
    Redemption = D et notice>180

    Redemption = W et notice<30
    Redemption = W et notice<45
    ....

    J'ai crée les requetes en Query, ensuite je fais un Dlookup en SQL pour obtenir les résultats cepedant c'est très long.

    Ne serais-ce pas plus rapide de tout coder en SQL?

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    crée une table annexe categ


    groupe...redemption..mini....maxi
    groupe1..D...................0......31
    ....
    groupeN.W...................0......46

    et inclue cette table dans ta requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ELECT categ.groupe, categ.redemption, matable.notice, Count(matable.notice) AS nombre
    FROM matable INNER JOIN categ ON matable.redemption = categ.redemption
    WHERE (((matable.notice)>[mini] And (matable.notice)<[maxi]))
    GROUP BY categ.groupe, categ.redemption, matable.notice;
    nb mini ne sert pas mais pourra te permettre de piloter plus finement tes groupes

    par redemption tu entends survie ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : Juillet 2006
    Messages : 235
    Par défaut
    Merci pour ta réponse mais à quoi correspond mini et maxi?

    Je travailles sur des hedge funds :
    la notice c'est le nombre de jours d'attente après avoir passé l'ordre de vente, ensuite on rajoute la redemption.

    Par exemple ordre d'achat passé le 07/01/07
    HedgeFund 30,D signifie que l'on vend le fonds après 30jours, donc le 07/01/07+30 jours (06/02/2007)
    HedgeFund 30,M signifie que l'on vends le fonds après 30jours puis fin de mois c'est à dire 07/01/07+30jours (06/02/2007) puis fin de mois donc 28/02/2007

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    maxi correspond à notice mini est inutile compte tenu de ton problème

    ps vous avez du avoir chaud en juillet aout dans votre activité

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : Juillet 2006
    Messages : 235
    Par défaut
    Pour l'instant nos hedge funds tiennent bien.

    En juillet positif ou flat en aout legere baisse de 1% ennviron.

    Sinon j'ai commencé par coder tout en VBA et ca donne ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        'fonction pour le tableau Redemption et Notice (nombre fond)
    Public Function RedemptionNoticeNB(Notice As Long, redemption As String)
     
    If (Notice = 180) Then
        sql1 = "SELECT count(*) AS [NB] FROM [Notice and Redemption] WHERE Redemption_notice>" & Notice & " and Redemption_frequency='" & redemption & "';"
        NbFond = res1(0)
    Else
        sql1 = "SELECT count(*) AS [NB] FROM [Notice and Redemption] WHERE Redemption_notice<=" & Notice & " and Redemption_frequency='" & redemption & "';"
        Set res1 = CurrentDb.OpenRecordset(sql1)
        NbFond = res1(0)
    End If
    End Function
    Pour suivre ton idée, ne serait-il pas plus simple de faire une requete de regroupement puis recupérer les résultats avec un recorset en VBA?

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    "mon idée" est de séparer le paramétrage des traitements

    la création d'une table de paramétrage souple et évolutive garantit la pérennité des traitements

    ceux ci sont organisés à partir d'une simple requête, que celle ci soit traitée en sql ou à travers vba est sans conséquence

    flat en juillet avec un objectif annuel de croissance de 12% correspond à une baisse de 1%

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

Discussions similaires

  1. query + requette sql
    Par helmis dans le forum Bases de données
    Réponses: 3
    Dernier message: 25/05/2006, 14h03
  2. [VBA-E] Requete SQL sous Excel
    Par climz dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/05/2006, 14h05
  3. [VBA-E] Requete SQL incluant des donnees provenant de cells
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/03/2006, 18h16
  4. [VBA-A] Requête SQL
    Par Berny03 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 24/11/2005, 21h16
  5. Probléme VBA Word et SQL server
    Par andrau dans le forum VBA Word
    Réponses: 2
    Dernier message: 12/10/2005, 11h52

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