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

Access Discussion :

Comment récuperer le résultat d'une fonction?


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    autre
    Inscrit en
    Octobre 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Octobre 2005
    Messages : 135
    Points : 62
    Points
    62
    Par défaut Comment récuperer le résultat d'une fonction?
    Bonjour à tous,

    Voilà: je voudrai récuperer dans un controle, le résultat d'une fonction. La fonction ... fonctionne, mais je n'arrive pas à afficher (et donc à enregistrer) le résultat:

    Voici la procédure qui appelle la fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub Argile_horizon2_AfterUpdate()
    Dim i As Integer
    If ([limon_horizon2] + [Argile_horizon2] > 1000) Then
        i = MsgBox("Pour info : Le cumul des granulométries doit être inférieur à 1000", vbOKOnly)
    End If
    Texture_H2 = calcul_texture(Me.Argile_horizon2, Me.limon_horizon2)
     
    End Sub
    et la fonction elle même:

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
    Public Function calcul_texture(Argile As Integer, Limon As Integer) As String
    Dim i As Integer
    Dim texture As String
    If Argile > 0 Then
        If Limon > 0 Then
            If Argile < 125 Then
                If Limon < 250 Then
                texture = "sable"
                Else
                If Limon < 425 Then
                texture = "sable limoneux"
                Else
                If Limon < 700 Then
                texture = "limon sableux"
                Else
                texture = "limon pur"
                End If
                End If
                End If
            Else
            If Argile < 225 Then
                If Limon < 250 Then
                texture = "sable argileux"
                Else
                If Limon < 370 Then
                texture = "sable argilo-limoneux"
                Else
                If Limon < 650 Then
                texture = "limon sablo_argileux"
                Else
                texture = "limon"
                End If
                End If
                End If
            Else
            If Argile < 325 Then
                If Limon < 250 Then
                texture = "argilo-sableux"
                Else
                If Limon < 570 Then
                texture = "limon argilo-sableux"
                Else
                texture = "limon argileux"
                End If
                End If
            Else
            If Argile < 450 Then
                If Limon < 225 Then
                texture = "argile sableuse"
                Else
                If Limon < 500 Then
                texture = "argile limono-sableuse"
                Else
                texture = "argile limoneuse"
                End If
                End If
            Else
            If Argile < 600 Then
            texture = "argile"
            Else
            texture = "argile lourde"
            End If
            End If
            End If
            End If
            End If
        Else
        i = MsgBox("Erreur d'interprétation de la texture", vbOKOnly, "Texture")
        End If
    Else
    i = MsgBox("Erreur d'interprétation de la texture", vbOKOnly, "Texture")
    End If
     
     
    End Function
    J'ai testé cette fonction comme une "Sub"...

    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
     
    Public Sub Argile_horizon2_AfterUpdate()
    Dim i As Integer
    Dim texture As String
    Dim Argile As Integer
    Dim Limon As Integer
    Argile = Argile_horizon2
    Limon = limon_horizon2
    If Argile > 0 Then
        If Limon > 0 Then
        .....................
        .................
    End If
    Texture_H2 = texture
     
    End Sub
    Là ça marche bien, mais vu le nombre de fois qu'il faut que je répète un appel à une fonction semble plus adapté si j'ai bien compris...

    Alors, après votre expertise, où est ma bévue de débutant ? ?

    Merci d'avance !

  2. #2
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Dans ta fonction, avant le End function, tu fais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Public Function calcul_texture(Argile As Integer, Limon As Integer) As String
    ......
    calcul_texture = texture
    End Function

  3. #3
    Membre du Club
    Profil pro
    autre
    Inscrit en
    Octobre 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Octobre 2005
    Messages : 135
    Points : 62
    Points
    62
    Par défaut
    Et ben voilà !

    je me doutai bien que ça devait être tout bête !

    Merci beaucoup !

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    J'espère que ton
    Texture_H2
    est un contrôle de ton formulaire.

    Lorsque tu veux savoir si une procédure ou une fonction fonctionne correctement, tu mets quand tu pense que c'est un point important un Tu auras un affichage dans le fenêtre d'exécution de l'éditeur VBA.

    C'est parfois utile pour faire un debug.

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

Discussions similaires

  1. comment récupere un paramètre dans une fonction call
    Par elonga dans le forum GTK+ avec C & C++
    Réponses: 6
    Dernier message: 27/08/2010, 02h46
  2. comment masquer le résultat d'une fonction
    Par bakaratoun dans le forum MATLAB
    Réponses: 2
    Dernier message: 14/12/2009, 16h08
  3. Récuperer le résultat d'une fonction Javascript
    Par zesavantfou dans le forum Langage
    Réponses: 9
    Dernier message: 26/11/2008, 10h32
  4. Réponses: 3
    Dernier message: 30/04/2008, 17h44
  5. [Langage][Classe][Methode]Comment récuperer les arguments d'une fonction ?
    Par FremyCompany dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/07/2006, 16h06

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