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 :

Afficher un état selon un critère donnée.


Sujet :

VBA Access

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2012
    Messages : 195
    Points : 83
    Points
    83
    Par défaut Afficher un état selon un critère donnée.
    bonjour les amis.
    J'ai un problème. J'ai un formulaire la ou je crée mes factures. Je veux afficher l'Etat de la facture selon le numéro de la facture quand je ferme le formulaire.
    Pour dire simple après avoir cliquer sur le bouton "Valider", je veux que le formulaire de la Facture se ferme et que l’état de la facture en question s'ouvre.
    Voici mon code:
    Avec de fermer la facture j'attribut le numéro de la facture à un variable que j'ai déclaré en haute de la procédure:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Option Compare Database
    Option Explicit
    Dim StrNumfact As Variant
    Quand je cliquer sur le bouton valider voici le code qui s’exécute :
    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
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    Private Sub CmdValider_Click()
     
    If IsNull(Me.clttxt) Then
        MsgBox "Veuillez sélectionner le client", vbCritical, ""
        Me.clttxt.SetFocus
        Me.clttxt.Dropdown
    End If
     
    If IsNull(Me.DateFacture) Then
        MsgBox "Veuillez insérer la date", vbCritical, ""
        Me.DateFacture.SetFocus
        Exit Sub
    End If
     
    If IsNull(Me.totalfacture) Or Me.totalfacture = 0 Then
        MsgBox "Pas d'enregistrement", vbCritical, ""
        Me.prodtxt.SetFocus
        Me.prodtxt.Dropdown
        Exit Sub
    End If
     
    DoCmd.RunCommand acCmdSave
     
    StrNumfact = Me.numfact
    GNumfact = Me.numfact
     
    Select Case Me.CmdValider.Caption
     
        Case Is = "Valider"
     
    'Exécuté si c'est une facture
    If Me.typefact = 1 Then
     
                If CDbl(Me.versett) > CDbl(Me.ttctxt) Then
                    MsgBox "Erreur de versement.", vbCritical, ""
                    Me.versett.SetFocus
                    Exit Sub
                End If
     
                StrInsertPaie
     
            Select Case Me.TypeImpression
     
                'A5
                Case Is = 1
                    DoCmd.OpenReport "e_facta5", acViewReport, , "numfact='" & StrNumfact & "'"
     
                'A5+BL
                Case Is = 2
                    DoCmd.OpenReport "e_facta5", acViewReport, , "numfact='" & StrNumfact & "'"
                    DoCmd.OpenReport "e_bla5", acViewReport, , "numfact='" & StrNumfact & "'"
     
                'A4
                Case Is = 3
                    DoCmd.OpenReport "e_facta4", acViewReport, , "numfact='" & StrNumfact & "'"
     
                'A4+BL
                Case Is = 4
                    DoCmd.OpenReport "e_facta4", acViewReport, , "numfact='" & StrNumfact & "'"
                    DoCmd.OpenReport "e_bla4", acViewReport, , "numfact='" & StrNumfact & "'"
     
            End Select
    Else
     
        Select Case Me.TypeImpression
     
                'A5
                Case Is = 1
                    DoCmd.OpenReport "e_facta5", acViewReport, , "numfact='" & StrNumfact & "'"
     
                'A5+BL
                Case Is = 2
                    MsgBox "La Facture Pro forma n'a pas de Bordereau de Livraison", vbInformation, ""
     
                'A4
                Case Is = 3
                    DoCmd.OpenReport "e_facta4", acViewReport, , "numfact='" & StrNumfact & "'"
     
                'A4+BL
                Case Is = 4
                    MsgBox "La Facture Pro forma n'a pas de Bordereau de Livraison", vbInformation, ""
     
        End Select
     
    End If
     
        Case Is = "Sauver"
     
        'Exécuté si c'est une facture
    If Me.typefact = 1 Then
     
     
            Select Case Me.TypeImpression
     
                'A5
                Case Is = 1
                    DoCmd.OpenReport "e_facta5", acViewReport, , "numfact='" & StrNumfact & "'"
     
                'A5+BL
                Case Is = 2
                    DoCmd.OpenReport "e_facta5", acViewReport, , "numfact='" & StrNumfact & "'"
                    DoCmd.OpenReport "e_bla5", acViewReport, , "numfact='" & StrNumfact & "'"
     
                'A4
                Case Is = 3
                    DoCmd.OpenReport "e_facta4", acViewReport, , "numfact='" & StrNumfact & "'"
     
                'A4+BL
                Case Is = 4
                    DoCmd.OpenReport "e_facta4", acViewReport, , "numfact='" & StrNumfact & "'"
                    DoCmd.OpenReport "e_bla4", acViewReport, , "numfact='" & StrNumfact & "'"
     
            End Select
    Else
     
        Select Case Me.TypeImpression
     
                'A5
                Case Is = 1
                    DoCmd.OpenReport "e_facta5", acViewReport, , "numfact='" & StrNumfact & "'"
     
                'A5+BL
                Case Is = 2
                    MsgBox "La Facture Pro forma n'a pas de Bordereau de Livraison", vbInformation, ""
     
                'A4
                Case Is = 3
                    DoCmd.OpenReport "e_facta4", acViewReport, , "numfact='" & StrNumfact & "'"
     
                'A4+BL
                Case Is = 4
                    MsgBox "La Facture Pro forma n'a pas de Bordereau de Livraison", vbInformation, ""
     
            End Select
     
    End If
     
     
            Forms!f_factModif!ListeFact.Requery
            Forms!f_factModif!ListeReglement.Requery
     
    End Select
     
        Me.factvalide = -1
        DoCmd.Close acForm, "f_factdivers"
     
    End Sub
    ça ne fonctionnement pas. L'Etat s'ouvre mais vide. je ne vois pas la Facture.
    Vous pouvez m'aider?

  2. #2
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Bonjour,

    Essaie avec cette syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport "e_facta5", acViewReport, , "[numfact]='" & StrNumfact & "'"
    Si le champ numfact est de type numérique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport "e_facta5", acViewReport, , "[numfact]=" & StrNumfact

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2012
    Messages : 195
    Points : 83
    Points
    83
    Par défaut
    ça marche pas!
    Je voulais juste signaler quelque chose.
    Après fermeture du formulaire si je ré-ouvre ça marche. Mais dès la création ça ne marche pas je ne sais pas pourquoi.

    j'ai utiliser le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunCommand acCmdSave
    pour sauvegarder

  4. #4
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Alors il faut agir sur le formulaire pour stocker le nouvel enregistrement dans la table :
    A placer avant les affectations de variables du numéro de facture:
    L'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunCommand acCmdSave
    a pour effet de sauvegarder le formulaire, donc sa structure. Pas les données affichées. ;-)

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2012
    Messages : 195
    Points : 83
    Points
    83
    Par défaut
    Désolé mais ça ne fonctionne pa
    s

  6. #6
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Désolé, j'ai survolé un peu trop la fin de ton explication...
    Le problème est là à priori :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim StrNumfact As Variant
    Si tu as fait ta déclaration dans le module du formulaire, lorsque celui-ci est fermé, la variable se retrouve vide. Donc ton état ne trouve pas le numéro de la facture.
    Il faut déclarer cette variable dans un module indépendant de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public StrNumfact As Variant

Discussions similaires

  1. [AC-2010] Comment afficher un état selon des critère
    Par kenthsmile dans le forum IHM
    Réponses: 2
    Dernier message: 18/09/2014, 19h27
  2. Réponses: 11
    Dernier message: 06/06/2008, 10h56
  3. Réponses: 2
    Dernier message: 04/07/2007, 20h33
  4. Select case pour afficher un Etat selon un critère
    Par Sofie109 dans le forum Access
    Réponses: 4
    Dernier message: 06/09/2006, 16h31
  5. Afficher un enregistrement selon un critère saisie.
    Par pegase23 dans le forum Access
    Réponses: 2
    Dernier message: 23/06/2005, 10h54

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