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 :

Remettre le compteur a 1


Sujet :

VBA Access

  1. #1
    Membre averti Avatar de jawed
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2004
    Messages : 499
    Points : 304
    Points
    304
    Par défaut Remettre le compteur a 1
    Bonjour a vous tous
    J'ai un champ qui se nomme NbrReg qui se trouve dans la table T_Factures
    Dans le sous formulaire F_Rejet le champ NbrReg est alimentée par ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    me.parent.NbrReg.value=dmax("NbrReg","T_Factures")+1
    Ma question si c'est possible comment remettre la valeur du champ NbrReg a 1 à chaque début d'année
    Cordialement

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 637
    Points : 14 611
    Points
    14 611
    Par défaut
    bonsoir,
    c'est un peu bancal comme méthode ...
    si la date d'émission de la facture suit la date du jour, il faut tester l'année de cette date par rapport à l'année de la date du jour et ajouter le contrôle dans le paramètre WhereCondition de la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    me.parent.NbrReg.value=nz(dmax("NbrReg","T_Factures","Year(Date_facture)=Year(Now)"),0)+1
    par contre, cela implique d'interdire de saisir toute facture de l'année précédente
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Membre averti Avatar de jawed
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2004
    Messages : 499
    Points : 304
    Points
    304
    Par défaut
    Bonjour tee_grandbois
    Merci pour votre retour, effectivement votre code remet la valeur du champ a 1 au début de l'année, mais il ne s'incremente pas a l'ajout d'une autre facture en cette nouvelle année.
    Aussi vous avez dit que c'est bancal comme méthode, ce serai très aimable de votre part de me montrer une meilleure solution.
    Cordialement

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 637
    Points : 14 611
    Points
    14 611
    Par défaut
    bonjour jawed,
    mais il ne s'incremente pas a l'ajout d'une autre facture en cette nouvelle année.
    il faudrait montrer le contexte d'utilisation (le code complet à minima, pas juste une ligne de code) car en théorie le code devrait fonctionner ...
    Aussi vous avez dit que c'est bancal comme méthode
    j'ai dit que c'est un peu bancal, pas que c'est inadapté, cette méthode implique juste qu'on ne peut pas saisir une facture oubliée l'année précédente sauf à changer la date système (ce qui peut être à la limite de la légalité).
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  5. #5
    Membre averti Avatar de jawed
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2004
    Messages : 499
    Points : 304
    Points
    304
    Par défaut
    Bonjour tee_grandbois
    Désolé si je n'étais pas clair au premier post.
    Ce champ NbrReg et le numéro de l'ordre de virement de la facture alors c'est obligatoire d'avoir un numéro qui augmentera par un a chaque nouveau paiement. Aussi a chaque nouvelle année la valeur du champ recommence de 1
    Pour le code que j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private sub num_dotation_afterupdare()
    If not isnull ([num dotation]) Chen
    me.parent.reglement.value=true
    me.parent.NbrReg.value=nz(dmax("NbrReg","T_Factures","Year(Date_dotation)=Year(Now)"),0)+1 
    End if
    End sub
    Quand j'ai testé en insèrant une nouvelle facture en année 2021 il m'affiche dans le champ que 1 mais pas 2,3,..... mais la suite du plus grand numéro qui figure dans le champ NbrReg
    Cordialement

  6. #6
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Salut
    Voici un code Christophe Warin que tu pourrais adapter à ta problématique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub DateFacture_Update()
    Dim oRst As DAO.Recordset
    If Me.NewRecord Then
        Set oRst = CurrentDb.OpenRecordset("SELECT Max(NbrReg) FROM T_Factures WHERE Year(DateFacture) = " & Year(Me.DateFacture) & "")
        With oRst
            If Not .EOF Then
                Me![NbrReg].Value = Nz(.Fields(0).Value, 0) + 1
            Else
                Me![NbrReg].Value = 1
            End If
            .Close
        End With
    End If
    End Sub
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  7. #7
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 637
    Points : 14 611
    Points
    14 611
    Par défaut
    une autre manière de faire serait de charger la valeur par défaut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Me.NewRecord Then _
    Me.NbrReg.DefaultValue = Nz(DMax("NbrReg", "T_Factures", "Year(Date_dotation)=Year(Now)"), 0) + 1
    cela fonctionne très bien avec un formulaire simple ou en mode continu sur l'évènement Form_Current
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  8. #8
    Membre averti Avatar de jawed
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2004
    Messages : 499
    Points : 304
    Points
    304
    Par défaut
    Bonsoir a vous tous
    merci a vous tee_grandbois hyperion13 pour votre aide, j'ai choisie la plus simple et celle de tee_grandbois
    Encore merci et a bientot
    Cordialement

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

Discussions similaires

  1. Remettre un compteur a zero
    Par zoullat dans le forum IHM
    Réponses: 2
    Dernier message: 21/10/2015, 18h27
  2. Remettre mon compteur excel en marche?
    Par pascalncp dans le forum Excel
    Réponses: 3
    Dernier message: 03/06/2014, 14h16
  3. Remettre compteur à 0 tous les x visiteurs
    Par Chaudlesmarrons dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 20/12/2008, 14h36
  4. remettre a zero un compteur n°auto ds une table
    Par emajo dans le forum Access
    Réponses: 1
    Dernier message: 21/02/2006, 00h16
  5. remettre à zéro un compteur sql
    Par luimême dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 03/01/2006, 11h35

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