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 :

Fonction minimum et recordset


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    Par défaut Fonction minimum et recordset
    Bonjour,

    Dans ma table, j'ai plusieurs numero de job pour des items differents... Je voudrais trouver le minimum de ces numeros poour chaque item.

    Exemple:

    Item/Job Number
    1/1
    1/2
    2/1
    2/3
    3/2
    3/4

    Pour l'item 1 --> 1
    Pour l'item 2 --> 1
    Pour l'item 3 --> 2

    J'utilise un recordset pour selectionner mon item mais impossible de faire Min(Recordset). La fonction Min requiert un object "Long" et la je sais pas comment m'y prendre,

    Merci pour vos idees...

  2. #2
    Membre éclairé Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Citation Envoyé par Daniel MOREAU Voir le message
    Mauvaise idée, les fonctions de domaines sont bonnes pour retourner une valeur.

    KGUTBM


    Voici une piste en SQL que tu peux mettre dans un recordset.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Item, Min([Job Number]) AS [MinDeJob Number]
    FROM LaTable
    GROUP BY Item;

    Starec

  4. #4
    Invité
    Invité(e)
    Par défaut
    Salut Philben

    J'avais compris avec deux champs, et non un champ qui regroupe les deux.

    Peut-être que KGUTBM pourra nous éclaircir sur ce point

    Starec

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Par défaut
    bonjour philippe,

    depuis ta réponse, j'ai un gros doute sur mon interprétation du problème...
    Je pense que t'as raison.

    Philippe

  6. #6
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    Par défaut
    Bonjour, merci pour vos reponses,
    donc je confirme, j'ai pas bien ecrit ce que je voulais, donc c'est bien deux champs, il y a bien deux champs, un item et l'autre job number.

    Job number est un autonumber, et moi je voudrais faire un calcul sur le premier job number de l'item. Vous allez me dire je pourrais prendre le job number egale a un, puisque il est reinitialise pour chaque nouvel item, mais non, car des job number peuvent etre supprimes y compris le job number 1. Donc la il me faut le minimum des job numbers pour avoir le premier. Alors, la solution de Daniel serait plus en adequation, mais jai pas reelement vu dans le lien un Dmin(Recordset(...)) ou meme un Dlookup(Dmin(...)). Je pense ke Dmin(recordset(...)) fait appel a un simple enregistrement donc ca doit pas fonctionner.

    Je l'ai ai toutes essaye et ca fonctionne pas... VBA ne considere pas l'enchevetrement des ces fonctions... Peut-etre les ai-je mal utilise, pouvez vous me donner un exemple d'utilisation de ses fonctions les unes avec les autres...?

  7. #7
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Par défaut
    bonjour,

    ci-dessous deux solutions dans la même requête, si j'ai bien compris, selon le nombre de chiffres composant le job.
    La solution pour un seul chiffre composant le Job ne fonctionne pas, selon les cas, s'il y a plus d'un chiffre mais elle est probablement plus rapide...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT Val([item/job]) AS Item, Min(Val(StrReverse([item/job]))) AS [job un chiffre seulement], Min(Val(Mid([item/job],InStr([item/job],"/")+1))) AS [job 2 chiffres ou plus]
    FROM MaTable
    GROUP BY Val([item/job])
    ORDER BY Val([item/job]);
    Philippe

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 31/01/2008, 08h34
  2. VstI, les fonctions minimums
    Par NiamorH dans le forum Bibliothèques
    Réponses: 8
    Dernier message: 08/01/2008, 19h09
  3. Réponses: 18
    Dernier message: 06/10/2007, 23h03
  4. Fonction avec un recordset en paramètre
    Par Poussy-Puce dans le forum ASP
    Réponses: 1
    Dernier message: 20/01/2006, 20h40
  5. Fonction retournant un recordset dans un module
    Par suspiria dans le forum Access
    Réponses: 3
    Dernier message: 29/09/2005, 15h46

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