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 :

compteur mensuel sous access


Sujet :

Access

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 8
    Points : 5
    Points
    5
    Par défaut compteur mensuel sous access
    Bonjour a tous,
    voici mon probleme
    j'ai cree une base sous acces qui genere un numero de ce type
    BLLO 04 10 25
    04 represente l'annee
    10 le mois
    25 un numero qui s'incremente tout seul
    ce que je voudrais c 'est qu'en debut de chaque mois
    l'incrementation revienne a 01

    help please
    nabil

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 124
    Points : 12 176
    Points
    12 176
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    En VBA c'est assez simple, mais je suppose que ton incrémentation est un compteur NuméroAuto Access.
    Si oui, il ne faut pas t'en servir.
    Ce que je te propose c'est que ton incrément soit généré par le jour du mois et la tu es pénard... Non ?
    Il est certain qu'il ira de 1 à 28 ou 1 à 29 ou 1 à 30 voire 31 selon le mois et sera remis à 1 dès le debut du mois suivant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonChamp = "BLLO " & Right(Year(Now), 2) & " " & Format(Month(Now), "00") & " " & Format(Day(Now), "00")
    Argy

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    merci pour ta reponse, mais j'ai environ 50 a 150 demandes par mois
    donc ce n'est pas suffisant, justement j'ai cree un 2e table identique qui purge les donnees dans la table principale
    ce que je veux faire c'est que la numerotation soit auto incrementee
    merci pour ton aide

  4. #4
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 124
    Points : 12 176
    Points
    12 176
    Billets dans le blog
    5
    Par défaut
    Ah ce moment là, à cahque nouvel enregistrement, tu alimentes toi-même le compteur à n+1 avec une procédure DAO tout en vérifiant quel jour et quel mois nous sommes.
    C'est l'incrémement auto qui te mets dans l'embarras.
    Par exemple créés une table spécifique qui contient le dernier mois sollicité avec l'année avec le dernier N° Incrmt utilisé (sur 3 champs) ce qui fait que tu peux tout contrôler:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    If chAnnee=Year(Now)
        If chMois=Month(Now)
            Select case Day(Now)
                Case 2 to DernierJourDuMois(Now)
                   Incrmt=Incrmt + 1                
                Case 1
                   Incrmt=1
            End Select
        End If
    End If
    DernierJourDuMois est une fonction qui calcule le dernier jour du mois en cours...

    Tu me suis ?

    Argy

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    je te remercie pour ta reponse, la ou c'est assez simple c'est qu'avec month(date) et year(date) j'obtient les 2 numeros
    BLLO 04 10 ca se mets automatiquement, est ce qu'il est possible pour moi d'avoir une fonction qui va chercher date du dernier enregistrment et avec la fonction month(date) va me permettre de declencher une requete purger si celle du jour et different de celle du dernier enregistrment?

    Je suis vraiment desole de t'embeter et je te remercie pour tes reponses mais je pense que cette fonction teste si j'arrive a la resoudre me simplifiera la vie .

  6. #6
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 124
    Points : 12 176
    Points
    12 176
    Billets dans le blog
    5
    Par défaut
    Tu ne m'embête pas...
    Suis l'idée que je t'ai transmise.
    A chaque nouvel enregistrement, alimente(et va chercher la valeur de...) une table (que tu nommes TBCompteur dans laquelle il y a 3 champs. Un Année, Un Mois, Un Incrément) fais un UPDATE du champ Incrément.
    Lors de la création de l'enregsitrement, tu vas chercher le dernier Incrément, tu l'affectes et tu fais un nouvel UPDATE.
    Enfin pour chacune de ces opérations, tu vérifies quel jour on est, si on est le 1er alors les champs Mois et Incrément changent respectivement en Mois +1 et Incrément=1. Année suit l'année en cours, tout comme Mois d'ailleurs.
    Maitrise-tu les opérations DAO ?

    Argy

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    salut c encore moi
    juste une derniere question
    sais tu comment recuperer la valeur dans un champs?
    nabil

  8. #8
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 124
    Points : 12 176
    Points
    12 176
    Billets dans le blog
    5
    Par défaut
    bonjour,

    Il y a deux solutions:
    En mode fonction Domaine:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonChamp=RechDom("QuelChamp";"QuelleTable";"Critères")
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonChamp=RechDom("[NumeroSiret]";"TBLSociete";"[IDClient]=" & Me!listeClient)
    En VBA (beaucoup + puissant)
    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
    Function ObtenirValeur(ByVal ClauseSelect As String, ByVal NomDuChamp As String) As Variant
    Dim RS As Recordset
    Dim ValeurDuChamp As Variant
     
      Set RS = CurrentDb.OpenRecordset(ClauseSelect, dbOpenDynaset)
      With RS
        If Not .EOF Then
          ValeurDuChamp = .Fields(NomDuChamp).Value
        Else
          ValeurDuChamp = vbNullString
        End If
      End With
      ObtenirValeur = ValeurDuChamp
      Set RS = Nothing
    End Function
     
    MonChamp=ObtenirValeur("SELECT * FROM TBLSociete WHERE IDClient =" & Me!listeClient, "NumeroSiret")
    Argy

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    JE TE REMERCIE BCP POUR TON AIDE PRECIEUSE
    NABIL

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 24/05/2011, 12h39
  2. [AC-2003] Compteur sous access 2003
    Par sassene dans le forum IHM
    Réponses: 3
    Dernier message: 02/07/2010, 14h43
  3. Compteur sous ACCESS pour "N" type de données
    Par Conny dans le forum VBA Access
    Réponses: 8
    Dernier message: 15/06/2009, 15h06
  4. Update sous Access
    Par Sk8cravis dans le forum Langage SQL
    Réponses: 7
    Dernier message: 16/04/2009, 14h29
  5. [Optimisation] Rushmore sous Access
    Par P'tit Jean dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 02/07/2003, 15h15

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