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 :

Compter des champs dans une période [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 25
    Points : 14
    Points
    14
    Par défaut Compter des champs dans une période
    Bonjour à tous,

    J'essai depuis ce matin de résoudre un gros gros problème pour moi étant un grand débutant en VBA

    Je voudrais à partir d'un bouton d'un formulaire, définir une période de filtre (du...au...) et à partir de là également pouvoir comptabiliser différentes champs "Transit", "daily", "weekly" etc etc sur cette période évidemment.
    Lorsque j'ai sélectionner ma date de filtre, afficher un état qui me fera apparaître la période définie ainsi que le nombre calculé pour chaque champs....

    Help me please et d'avance merci de votre aide.

    P.S : je joint un fichier à titre d'exemple
    Fichiers attachés Fichiers attachés

  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 034
    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 034
    Points : 24 602
    Points
    24 602
    Par défaut
    Bonjour,

    Commence par faire ta requête avec l'opérateur Between.

    Une fois que tu as les données que tu souhaites, tu ajoute la fonction regroupement avec tes Compte sur chaque champs ou tu veux compter.

    Dans ton formulaire crée 2 zone de texte pour tes dates (ztDate1 et ztDate2).

    Modifie ta requete pour integrer les 2 zones de texte dans ta requete comme ceci.

    Between forms!monform!ztDate1 and forms!monform!ztDate2

    Crée ensuite ton état basé sur cette requete.

    Cordialement,

  3. #3
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    un exemple

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 25
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par helas Voir le message
    un exemple
    Merci Helas...c'est exactement ce que je veux faire....
    Je vais essayer de décortiquer le code et l'appliquer à ma BDD.

    Ce que je voulais faire aussi dans l'en-tête de l'état c'est de faire apparaître un cumul pour les champs "Transit" "Daily" "Weekly" "T/S" et "Autres", de façon à savoir pour la période défini combien de tâches ont été réalisées.

    Déjà là c'est super...merci...merci...merci

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 25
    Points : 14
    Points
    14
    Par défaut
    J'ai essayé d'appliquer également la méthode de Loufab pour compter mes champs....hélas ça ne fonctionne pas ni avec une requête et encore moins en VBA

    Le but étant de l'appliquer sur un état et non pas sur un formulaire

    j'ai donc :
    Table_periode constitué des champs "date_début" et "date_fin"
    Table_experience constitué des champs "date" et "transit"

    Ma requête dans le générateur d'expression devrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =somme ([table_experience.transit] Between [table_periode.date_debut And date_fin])
    Arghhhh Ca marche pas......

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 034
    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 034
    Points : 24 602
    Points
    24 602
    Par défaut
    Evidemment que ça ne marchera pas.

    On somme un champ pas une expression bouleene !

    un Between renvoi une valeur vrai/faux.

    Il faut faire d'une part la clause WHERE avec le between et de l'autre la somme avec le champ.

    Sinon utilise un Dsum pour faire les 2 ensembles. (voir le tuto sur les fonctions de domaine.)

    Inutile de perdre du temps à essayer d'inventer un fonctionnement, le mieux et le plus rapide est de l'apprendre. Même si on a l'iompression de perdre sont temps à lire une doc, un tuto ou l'aide en ligne.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 25
    Points : 14
    Points
    14
    Par défaut
    Merci Loufab, je vais me mettre le nez dans le tuto afin de mieux comprendre et espérer enfin pouvoir calculer mes champs en fonction de la période sélectionnée...

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 034
    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 034
    Points : 24 602
    Points
    24 602
    Par défaut
    un exemple de requete sql contenant à la fois un between et un compte (identique à somme)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Count(DVD.Support) AS CompteDeSupport
    FROM DVD
    WHERE (((DVD.Parution) Between 1970 And 1989));

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 25
    Points : 14
    Points
    14
    Par défaut
    J'ai résolu mon problème avec l'aide de f-leb, ainsi ma requête SQL prend cette forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Table_periode.Date_Debut, Table_periode.Date_Fin, (SELECT SUM(Transit_exp_recente)  FROM Table_exp_recente WHERE Date BETWEEN Table_periode.Date_Debut
     AND Table_periode.Date_Fin) AS Cumul
    FROM Table_periode
    ORDER BY Table_periode.Date_Debut;

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

Discussions similaires

  1. [Débutant]Ordre des champs dans une table
    Par goony dans le forum Débuter
    Réponses: 4
    Dernier message: 16/02/2006, 12h05
  2. Ajouter des CHAMPS dans une table via ASP
    Par hysteresis dans le forum Access
    Réponses: 1
    Dernier message: 27/09/2005, 15h39
  3. [langage] compter des caracteres dans une chaine
    Par louisis dans le forum Langage
    Réponses: 3
    Dernier message: 18/05/2004, 22h39
  4. [langage] Comment rajouter des champs dans une liste
    Par toto_titi dans le forum Langage
    Réponses: 4
    Dernier message: 28/08/2003, 14h09
  5. Ordre des champs dans une table
    Par patapetz dans le forum Outils
    Réponses: 5
    Dernier message: 30/07/2003, 06h53

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