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 :

Macro convertie en vb [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Inscrit en
    Février 2011
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 149
    Par défaut Macro convertie en vb
    bonjour,

    j'ai converti une macro parce que dans mes conditions, access me bloque au niveau de ma longueur de phrase (c'est un peu pénible).

    le problème c'est que je n'y connais pas grand choses aux codes...

    mon soucis, j'aimerai pouvoir attribuer à un bouton mon code. j'ai pu voir que le bouton par défaut me propose une procédure en Sub et non en function (function est la procédure convertie de ma macro). Alors comment faire pour que mon bouton puisse lire ce code ?

    J'ai déjà essayé de remplace ma function par une sub... mais sans réussite. j'ai essayé aussi de mettre function commande1 click() ne marche pas non plus

    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
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
     
    '------------------------------------------------------------
    ' M_F_1_Creer_Coswin_av_Correspondance_coswin
    '
    '------------------------------------------------------------
    Function M_F_1_Creer_Coswin_av_Correspondance_coswin()
    On Error GoTo M_F_1_Creer_Coswin_av_Correspondance_coswin_Err
     
    ' #### Conditions code fournisseur ####
        If (Forms!F_F_0_Creer_Coswin_av_Correspondance_Coswin!ID_TMP <> Forms!F_F_0_Creer_Coswin_av_Correspondance_Coswin!Modifiable52) Then
            ' ID <>Modifiable52  coché
            Forms!F_F_0_Creer_Coswin_av_Correspondance_Coswin!Créer_New_Fournisseur_Usine = -1
        End If
        If (Eval("[Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Modifiable52] Is Null")) Then
            ' Modifiable est null
            Forms!F_F_0_Creer_Coswin_av_Correspondance_Coswin!Créer_New_Fournisseur_Usine = 0
        End If
        If (Forms!F_F_0_Creer_Coswin_av_Correspondance_Coswin!ID_TMP = Forms!F_F_0_Creer_Coswin_av_Correspondance_Coswin!Modifiable52) Then
            ' ID=Modifiable       pas coché
            Forms!F_F_0_Creer_Coswin_av_Correspondance_Coswin!Créer_New_Fournisseur_Usine = 0
        End If
     
    ' #### Conditions Ref fournisseur ####
        If (Eval("[Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Référence_Fournisseur_Usine] Is Null")) Then
            ' Erreur Ref four + code four est null
            MsgBox "Vous n'avez pas remplie la référence fournisseur et le code fournisseur", vbCritical, ""
        End If
        ' ref four
        DoCmd.GoToControl "Référence_Fournisseur_Usine"
        If (Eval("[Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Référence_Fournisseur_Usine] Is Null And [Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Modifiable52] Is Not Null")) Then
            Exit Function
        End If
     
        If (Eval("[Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Référence_Fournisseur_Usine] Is Not Null And [Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Modifiable52] Is Null")) Then
            ' Erreur Ref four non null et code four null
            MsgBox "Vous n'avez pas de code fournisseur valide !", vbCritical, ""
        End If
        'liste déroulante'
        DoCmd.GoToControl "Modifiable52"
        If (Eval("[Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Référence_Fournisseur_Usine] Is Not Null And [Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Modifiable52] Is Null")) Then
            Exit Function
        End If
     
        If (Eval("[Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Référence_Fournisseur_Usine] Is Not Null And [Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Modifiable52] Is Not Null And [Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Modifiable52]=[Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![code four]")) Then
            ' ref four non null et code four non null et qui est = au groupe
            MsgBox "Vous ne pouvez pas avoir pour un même code fournisseur et une référence différente que celle du groupe", vbCritical, ""
        End If
        DoCmd.GoToControl "Référence_Fournisseur_Usine"
        If (Eval("[Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Référence_Fournisseur_Usine] Is Not Null And [Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Modifiable52] Is Not Null And [Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Modifiable52]=[Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![code four]")) Then
            Exit Function
        End If
     
        If (Eval("[Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Référence_Fournisseur_Usine] Is Not Null And [Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Modifiable52] Is not Null and [Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Modifiable52]<>[Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![code four]")) Then
            ' ref four est pas null + code four est pas null + <> Groupe
            Forms!F_F_0_Creer_Coswin_av_Correspondance_Coswin!Créer_New_Fournisseur_Usine = -1
        End If
     
        If (Eval("[Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Référence_Fournisseur_Usine] Is Not Null And [Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Modifiable52] Is not Null and [Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Modifiable52]=[Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![code four]")) Then
            ' ref four est pas null + code four est pas null et = groupe
            MsgBox "Vous ne pouvez pas avoir une référence fournisseur différente du groupe pour cette même référence", vbOKOnly, ""
        End If
     
    ' #### Mise à jour #####
        ' F_F_0_Creer_Coswin_av_Correspondance_Coswin
        DoCmd.Close acForm, "F_F_0_Creer_Coswin_av_Correspondance_Coswin"
        ' R_C_Mise_a_jour_Code_Fournisseur_a_TMP_Usine
        DoCmd.OpenQuery "R_C_Mise_a_jour_Code_Fournisseur_a_TMP_Usine", acViewNormal, acEdit
        ' R_F_3_Update_TMP_Usine_a_Usine
        DoCmd.OpenQuery "R_F_3_Update_TMP_Usine_a_Usine", acViewNormal, acAdd
        ' R_F_4_Mise_a_jour_Table_Lien_Code_Groupe
        DoCmd.OpenQuery "R_F_4_Mise_a_jour_Table_Lien_Code_Groupe", acViewNormal, acEdit
        ' R_C_Mise_a_jour_ID_Groupe
        DoCmd.OpenQuery "R_C_Mise_a_jour_ID_Groupe", acViewNormal, acEdit
        ' R_C_Mise_a_jour_ID_Source
        DoCmd.OpenQuery "R_C_Mise_a_jour_ID_Source", acViewNormal, acEdit
        ' R_C_Mise_a_jour_Lien_-1
        DoCmd.OpenQuery "R_C_Mise_a_jour_Lien_-1", acViewNormal, acEdit
        ' R_C_Mise_a_jour_Lien_Fait_-1
        DoCmd.OpenQuery "R_C_Mise_a_jour_Lien_Fait_-1", acViewNormal, acEdit
        ' R_A_2_Mise_a_jour_ID_Source_dans_Usine
        DoCmd.OpenQuery "R_A_2_Mise_a_jour_ID_Source_dans_Usine", acViewNormal, acEdit
        ' R_A_3_Mise_a_jour_Id_Groupe_dans_Usine_avec_Code_Coswin
        DoCmd.OpenQuery "R_A_3_Mise_a_jour_Id_Groupe_dans_Usine_avec_Code_Coswin", acViewNormal, acEdit
        ' R_C_Mise_a_jour_Des_Fournisseur_TMP_Usine
        DoCmd.OpenQuery "R_C_Mise_a_jour_Des_Fournisseur_TMP_Usine", acViewNormal, acEdit
        ' #### Fermeture des formulaires ####
        ' F_F_3_SF_Fournisseur
        DoCmd.Close acForm, "F_F_3_SF_Fournisseur"
        ' F_F_2_FS_Source
        DoCmd.Close acForm, "F_F_2_FS_Source"
        ' F_F_1_SF_Groupe
        DoCmd.Close acForm, "F_F_1_SF_Groupe"
        ' F_E_0_Recherche_Groupe
        DoCmd.Close acForm, "F_E_0_Recherche_Groupe"
     
     
    M_F_1_Creer_Coswin_av_Correspondance_coswin_Exit:
        Exit Function
     
    M_F_1_Creer_Coswin_av_Correspondance_coswin_Err:
        MsgBox Error$
        Resume M_F_1_Creer_Coswin_av_Correspondance_coswin_Exit
     
    End Function

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2008
    Messages : 97
    Par défaut
    Ta fonction ne retournant rien, il ne devrait pas y avoir de problème en la remplacent par un Sub, tu devrais laisser le code généré et remplacer le contenu du sub par le contenu de ta fonction.

    Si ton boutton s'appelle boutton ton sub devrait ressembler à ca:

    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
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    Private Sub boutton_Click()
    On Error GoTo M_F_1_Creer_Coswin_av_Correspondance_coswin_Err
     
    ' #### Conditions code fournisseur ####
        If (Forms!F_F_0_Creer_Coswin_av_Correspondance_Coswin!ID_TMP <> Forms!F_F_0_Creer_Coswin_av_Correspondance_Coswin!Modifiable52) Then
            ' ID <>Modifiable52  coché
            Forms!F_F_0_Creer_Coswin_av_Correspondance_Coswin!Créer_New_Fournisseur_Usine = -1
        End If
        If (Eval("[Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Modifiable52] Is Null")) Then
            ' Modifiable est null
            Forms!F_F_0_Creer_Coswin_av_Correspondance_Coswin!Créer_New_Fournisseur_Usine = 0
        End If
        If (Forms!F_F_0_Creer_Coswin_av_Correspondance_Coswin!ID_TMP = Forms!F_F_0_Creer_Coswin_av_Correspondance_Coswin!Modifiable52) Then
            ' ID=Modifiable       pas coché
            Forms!F_F_0_Creer_Coswin_av_Correspondance_Coswin!Créer_New_Fournisseur_Usine = 0
        End If
     
    ' #### Conditions Ref fournisseur ####
        If (Eval("[Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Référence_Fournisseur_Usine] Is Null")) Then
            ' Erreur Ref four + code four est null
            MsgBox "Vous n'avez pas rempli la référence fournisseur et le code fournisseur", vbCritical, ""
        End If
        ' ref four
        DoCmd.GoToControl "Référence_Fournisseur_Usine"
        If (Eval("[Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Référence_Fournisseur_Usine] Is Null And [Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Modifiable52] Is Not Null")) Then
            Exit Function
        End If
     
        If (Eval("[Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Référence_Fournisseur_Usine] Is Not Null And [Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Modifiable52] Is Null")) Then
            ' Erreur Ref four non null et code four null
            MsgBox "Vous n'avez pas de code fournisseur valide !", vbCritical, ""
        End If
        'liste déroulante'
        DoCmd.GoToControl "Modifiable52"
        If (Eval("[Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Référence_Fournisseur_Usine] Is Not Null And [Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Modifiable52] Is Null")) Then
            Exit Function
        End If
     
        If (Eval("[Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Référence_Fournisseur_Usine] Is Not Null And [Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Modifiable52] Is Not Null And [Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Modifiable52]=[Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![code four]")) Then
            ' ref four non null et code four non null et qui est = au groupe
            MsgBox "Vous ne pouvez pas avoir pour un même code fournisseur et une référence différente que celle du groupe", vbCritical, ""
        End If
        DoCmd.GoToControl "Référence_Fournisseur_Usine"
        If (Eval("[Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Référence_Fournisseur_Usine] Is Not Null And [Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Modifiable52] Is Not Null And [Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Modifiable52]=[Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![code four]")) Then
            Exit Function
        End If
     
        If (Eval("[Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Référence_Fournisseur_Usine] Is Not Null And [Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Modifiable52] Is not Null and [Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Modifiable52]<>[Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![code four]")) Then
            ' ref four est pas null + code four est pas null + <> Groupe
            Forms!F_F_0_Creer_Coswin_av_Correspondance_Coswin!Créer_New_Fournisseur_Usine = -1
        End If
     
        If (Eval("[Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Référence_Fournisseur_Usine] Is Not Null And [Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Modifiable52] Is not Null and [Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![Modifiable52]=[Forms]![F_F_0_Creer_Coswin_av_Correspondance_Coswin]![code four]")) Then
            ' ref four est pas null + code four est pas null et = groupe
            MsgBox "Vous ne pouvez pas avoir une référence fournisseur différente du groupe pour cette même référence", vbOKOnly, ""
        End If
     
    ' #### Mise à jour #####
        ' F_F_0_Creer_Coswin_av_Correspondance_Coswin
        DoCmd.Close acForm, "F_F_0_Creer_Coswin_av_Correspondance_Coswin"
        ' R_C_Mise_a_jour_Code_Fournisseur_a_TMP_Usine
        DoCmd.OpenQuery "R_C_Mise_a_jour_Code_Fournisseur_a_TMP_Usine", acViewNormal, acEdit
        ' R_F_3_Update_TMP_Usine_a_Usine
        DoCmd.OpenQuery "R_F_3_Update_TMP_Usine_a_Usine", acViewNormal, acAdd
        ' R_F_4_Mise_a_jour_Table_Lien_Code_Groupe
        DoCmd.OpenQuery "R_F_4_Mise_a_jour_Table_Lien_Code_Groupe", acViewNormal, acEdit
        ' R_C_Mise_a_jour_ID_Groupe
        DoCmd.OpenQuery "R_C_Mise_a_jour_ID_Groupe", acViewNormal, acEdit
        ' R_C_Mise_a_jour_ID_Source
        DoCmd.OpenQuery "R_C_Mise_a_jour_ID_Source", acViewNormal, acEdit
        ' R_C_Mise_a_jour_Lien_-1
        DoCmd.OpenQuery "R_C_Mise_a_jour_Lien_-1", acViewNormal, acEdit
        ' R_C_Mise_a_jour_Lien_Fait_-1
        DoCmd.OpenQuery "R_C_Mise_a_jour_Lien_Fait_-1", acViewNormal, acEdit
        ' R_A_2_Mise_a_jour_ID_Source_dans_Usine
        DoCmd.OpenQuery "R_A_2_Mise_a_jour_ID_Source_dans_Usine", acViewNormal, acEdit
        ' R_A_3_Mise_a_jour_Id_Groupe_dans_Usine_avec_Code_Coswin
        DoCmd.OpenQuery "R_A_3_Mise_a_jour_Id_Groupe_dans_Usine_avec_Code_Coswin", acViewNormal, acEdit
        ' R_C_Mise_a_jour_Des_Fournisseur_TMP_Usine
        DoCmd.OpenQuery "R_C_Mise_a_jour_Des_Fournisseur_TMP_Usine", acViewNormal, acEdit
        ' #### Fermeture des formulaires ####
        ' F_F_3_SF_Fournisseur
        DoCmd.Close acForm, "F_F_3_SF_Fournisseur"
        ' F_F_2_FS_Source
        DoCmd.Close acForm, "F_F_2_FS_Source"
        ' F_F_1_SF_Groupe
        DoCmd.Close acForm, "F_F_1_SF_Groupe"
        ' F_E_0_Recherche_Groupe
        DoCmd.Close acForm, "F_E_0_Recherche_Groupe"
     
     
    M_F_1_Creer_Coswin_av_Correspondance_coswin_Exit:
        Exit Function
     
    M_F_1_Creer_Coswin_av_Correspondance_coswin_Err:
        MsgBox Error$
        Resume M_F_1_Creer_Coswin_av_Correspondance_coswin_Exit
     
    End Sub

  3. #3
    Membre confirmé
    Inscrit en
    Février 2011
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 149
    Par défaut
    ah ,j'avais aussi changé les exit function par end sub... voila pourquoi ça ne fonctionnait pas !

    Merci de votre aide, tout baigne

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2008
    Messages : 97
    Par défaut
    ah ben oui...

    j'avais pas lu le code en détail...

    Les Exit Function tu ne dois pas les remplacer par End Sub mais par Exit Sub
    (c'est mieux de le faire, même si Exit Function fonctionne)

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

Discussions similaires

  1. [AC-2010] Macro ou Macro convertie?
    Par fab.85 dans le forum Macros Access
    Réponses: 6
    Dernier message: 27/09/2013, 23h03
  2. Réponses: 12
    Dernier message: 01/03/2007, 11h07
  3. [VBA-E] [Excel] Lancer une macro à une heure donnée
    Par Lysis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/10/2002, 12h15
  4. Qu'est-ce qu'une macro ?
    Par karli dans le forum Assembleur
    Réponses: 2
    Dernier message: 01/09/2002, 03h38
  5. Réponses: 2
    Dernier message: 22/07/2002, 12h13

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