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 :

boucle pour la valeur min d'un champ


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 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 91
    Par défaut boucle pour la valeur min d'un champ
    je cherche une boucle qui retourne la valeure min d'un champ d'une table
    voila le code que j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Commande20_Click()
    Dim MaBase As Database
    Dim MaTable As TableDefs
    Dim MonChamp As Field
    Dim MinNombre As Integer
    Set MaBase = CurrentDb
    Set MaTable = Table1
    With MaTable
    Set MonChamp = Nombre
    End With
    Set MinNombre = Min(MonChamp)
    Debug.Print MinNombre
    End Sub
    la fonction min n'existe pas je crois?

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 197
    Par défaut
    Bonjour,

    Tu peux travailler avec un recordset pour utiliser la fonction Min.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Sub Commande20_Click()
        Dim myRst As DAO.Recordset
        set myRst = currentDb.OpenRecordset("Select Min(MonChamp) As PlusPetit From MaTable", dbOpenSnapshot)
        If Not myRst.Eof then
            MinNombre = myRst!PlusPetit
        Else
            MinNombre = 0
        Endif
        myRst.Close
    End Sub

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 91
    Par défaut
    merci pour ta réponse si rapide
    voila le code que j'ai mis ça marche toujours pas
    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
    Private Sub Commande20_Click()
    Dim myRst As DAO.Recordset
    Dim MaBase As Database
    Dim MaTable As TableDefs
    Dim MonChamp As Field
    Dim MinNombre As Variant
    Set MaBase = CurrentDb
    Set MaTable = Table1
    With MaTable
    Set MonChamp = Nombre
    Set myRst = CurrentDb.OpenRecordset("Select Min(MonChamp) As PlusPetit From MaTable", dbOpenSnapshot)
        If Not myRst.EOF Then
            MinNombre = myRst!PlusPetit
        Else
            MinNombre = 0
        End If
        myRst.Close
    End With
    Debug.Print MinNombre
    Set MinNombre = Nothing
    End Sub
    message d'erreure objet requis

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 197
    Par défaut
    Tu as déclaré minNombre en tant que Variant, c'est donc une variable et pas un objet.

    Donc la ligne Set minNombre = Nothing n'est pas correcte.

    Accessoirement, il faut que tu adaptes mon exemple à ton cas précis en changeant les valeurs "MaTable" et "MonChamp" avec les noms réels des objets que tu manipules; c'est à dire le nom de la table qui contient les données et le nom du champ dont tu veux obtenir la valeur minimum.

    En outre les lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim MaTable As TableDefs
    Dim MonChamp As Field
    Set MaBase = CurrentDb
    Set MaTable = Table1
    With MaTable
    Set MonChamp = Nombre
    ...
    End With
    son superflues...

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

    Si ce n'est pas une table trop grosse, tu peux utiliser la fonction de domaine DMin

    http://starec.developpez.com/tuto/fo...maines/#LIII-A

    Philippe

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 91
    Par défaut
    j'ai modifier le code j'ai colé un espion sur Table1 l'espion retourne empty/vide
    donc il reconnait pas Table1 alors qu'elle existe vraiment, donc je crois qu'il faut que je rajoute qulque chose pour qu'il reconnait table1
    Private Sub Commande20_Click()
    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
     
    Dim myRst As DAO.Recordset
    Dim MaBase As Database
    Dim MaTable As TableDef
    Dim MonChamp As Field
    Dim MinNombre As Integer
    Set MaBase = CurrentDb
    With MaBase
    Set MaTable = Table1
    Set MonChamp = nombre
    Set myRst = CurrentDb.OpenRecordset("Select Min(MonChamp) As PlusPetit From MaTable", dbOpenSnapshot)
        If Not myRst.EOF Then
            MinNombre = myRst!PlusPetit
        Else
            MinNombre = 0
        End If
        myRst.Close
        Debug.Print MinNombre
    End With
    Set MaBase = Nothing
    Set MaTable = Nothing
    Set MonChamp = Nothing
    End Sub

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

Discussions similaires

  1. Boucle pour récuperer valeurs manquantes
    Par mamiche dans le forum SAS Base
    Réponses: 10
    Dernier message: 29/10/2012, 15h58
  2. [AC-2007] Valeur MIN d'un champ calculé
    Par micbett dans le forum Requêtes et SQL.
    Réponses: 16
    Dernier message: 16/02/2012, 22h26
  3. Réponses: 3
    Dernier message: 29/04/2010, 13h54
  4. Boucle pour controler valeurs de cellules et faire des actions ensuite
    Par Le Rom dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/02/2010, 12h43
  5. sélection pour deux valeurs fixes d'un champ
    Par avairet dans le forum Requêtes
    Réponses: 10
    Dernier message: 25/03/2008, 10h52

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