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 :

Partie optionnelle d'une fonction


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 51
    Points : 41
    Points
    41
    Par défaut Partie optionnelle d'une fonction
    Bonjour,

    J'ai une fonction "Traction_filetage" et je l'appelle plusieurs fois dans mon code de mon formulaire.

    Le problème c'est que celle ci contient des messagebox et je souhaite qu'à ertains appels de cette fonction elle ne m'affiche pas les messagebox et à d'autres elle me les affiche. Donc avec une partie du code qui serait optionnel et on définirai cette option dans l'appel de la fonction.

    Je sais que c'est possible mais je n'y arrive pas, et j'ai vu les tutoriels sur ce site mais je n'y ai rien compris.

    Voici mon code avec les parties que je souhaite rendre optionnel entre les annotations



    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
    Public Function Traction_filetage()
     
     
    If DCount("De_tube", "T_saisie_tube") <= 0 Then Exit Function
     
    Dim rs1 As DAO.Recordset
    Dim rs2 As DAO.Recordset
    Dim rs3 As DAO.Recordset
    Dim db As DAO.Database
     
    Set db = CurrentDb
    Set rs1 = db.OpenRecordset("select tube,de,resistance_traction_filetage from geol where resistance_traction_filetage is not null", dbOpenDynaset)
    Set rs2 = db.OpenRecordset("select cumul_masse_tube_apparente from geol where cumul_masse_tube_apparente is not null", dbOpenDynaset)
    Set rs3 = db.OpenRecordset("geol", dbOpenTable)
     
    rs1.MoveFirst
    rs2.MoveLast
     
            Do Until rs1.EOF
     
                    If rs2!cumul_masse_tube_apparente > ((rs1!Resistance_traction_filetage) * 101.97) Then
     
                    'A inscrire en optionnel
                    MsgBox ("Attention, vous aurez un problème de résistance à la traction pendant la descente du tubage sur votre tube :  " & rs1!Tube.Value & " situé à " & rs1!De.Value + 0.5 & " mètres dans votre interface de saisie. " & vbCrLf & "Veuillez prendre des tubes avec une resistance plus importante")
                    'A inscrire en optionnel
     
                    Forms!outil("rouge_checklist_traction").Visible = True
                    Forms!outil("vert_checklist_traction").Visible = False
                    Exit Function
                    End If
                    rs3.Edit
                    rs3!Marge_securité_traction = ((rs1!Resistance_traction_filetage) * 101.97) / rs2!cumul_masse_tube_apparente
                    rs3.Update
                    rs3.MoveNext
                    rs2.MovePrevious
                    rs1.MoveNext
     
            Loop
     
            'A inscrire en optionnel
            MsgBox ("Vous n'avez aucun problème de resistance à la traction sur vos tubes, votre marge minimale est de " & DMin("Marge_securité_traction", "geol") & "." & vbCrLf & " (Resistance à la traction du tube en kg/ masse apparente du tube en kg)")
            'A inscrire en optionnel
     
            Forms!outil("rouge_checklist_traction").Visible = False
            Forms!outil("vert_checklist_traction").Visible = True
     
    rs1.Close
    rs2.Close
    rs3.Close
    db.Close
    Set db = Nothing
    Set rs1 = Nothing
    Set rs2 = Nothing
     
     
    End Function
    Merci d'avance !

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,


    Le problème c'est que celle-ci contient des messagebox et je souhaite qu'à certains appels de cette fonction elle ne m'affiche pas les messagebox et à d'autres elle me les affiche.
    Comment comptes-tu communiquer au système que tu veux ou non ces messages ? En d'autres mots, quel est le critère pour déterminer si les messages doivent être affichés ?


    je l'appelle plusieurs fois dans mon code de mon formulaire
    Montre ton code actuel.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 51
    Points : 41
    Points
    41
    Par défaut
    J'ai résolu le probléme !
    Je met le code si ca peut aider des gens :


    La fonction
    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
    Public Function Traction_filetage(msg As Boolean)
     
     
    If DCount("De_tube", "T_saisie_tube") <= 0 Then Exit Function
     
    Dim rs1 As DAO.Recordset
    Dim rs2 As DAO.Recordset
    Dim rs3 As DAO.Recordset
    Dim db As DAO.Database
     
    Set db = CurrentDb
    Set rs1 = db.OpenRecordset("select tube,de,resistance_traction_filetage from geol where resistance_traction_filetage is not null", dbOpenDynaset)
    Set rs2 = db.OpenRecordset("select cumul_masse_tube_apparente from geol where cumul_masse_tube_apparente is not null", dbOpenDynaset)
    Set rs3 = db.OpenRecordset("geol", dbOpenTable)
     
    rs1.MoveFirst
    rs2.MoveLast
     
            Do Until rs1.EOF
     
                    If rs2!cumul_masse_tube_apparente > ((rs1!Resistance_traction_filetage) * 101.97) Then
     
                    If msg = True Then
                    'A inscrire en optionnel
                    msgbox ("Attention, vous aurez un problème de résistance à la traction pendant la descente du tubage sur votre tube :  " & rs1!Tube.Value & " situé à " & rs1!De.Value + 0.5 & " mètres dans votre interface de saisie. " & vbCrLf & "Veuillez prendre des tubes avec une resistance plus importante")
                    'A inscrire en optionnel
                    End If
     
                    Forms!outil("rouge_checklist_traction").Visible = True
                    Forms!outil("vert_checklist_traction").Visible = False
                    Exit Function
                    End If
                    rs3.Edit
                    rs3!Marge_securité_traction = ((rs1!Resistance_traction_filetage) * 101.97) / rs2!cumul_masse_tube_apparente
                    rs3.Update
                    rs3.MoveNext
                    rs2.MovePrevious
                    rs1.MoveNext
     
            Loop
     
            If msg = True Then
            'A inscrire en optionnel
            msgbox ("Vous n'avez aucun problème de resistance à la traction sur vos tubes, votre marge minimale est de " & DMin("Marge_securité_traction", "geol") & "." & vbCrLf & " (Resistance à la traction du tube en kg/ masse apparente du tube en kg)")
            'A inscrire en optionnel
            End If
     
            Forms!outil("rouge_checklist_traction").Visible = False
            Forms!outil("vert_checklist_traction").Visible = True
     
    rs1.Close
    rs2.Close
    rs3.Close
    db.Close
    Set db = Nothing
    Set rs1 = Nothing
    Set rs2 = Nothing
     
     
    End Function
    L'appel de la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim msg As Boolean
    msg = False 
    Call  traction_filetage

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

Discussions similaires

  1. arguments optionnels d'une fonction
    Par samtheh dans le forum VBA Access
    Réponses: 3
    Dernier message: 06/06/2007, 11h24
  2. Argument optionnel d'une fonction
    Par Xunil dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/02/2007, 22h33
  3. [débutant] mettre un parametre optionnel dans une fonction
    Par maximenet dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/08/2006, 16h08
  4. Paramètre optionnel dans une fonction
    Par bractar dans le forum Langage
    Réponses: 3
    Dernier message: 10/03/2006, 17h02
  5. paramètre optionnel dans une fonction
    Par titoumimi dans le forum Langage
    Réponses: 2
    Dernier message: 02/02/2006, 15h29

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