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 :

Numérotation personalisée ACCESS [AC-2007]


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Controleur de gestion
    Inscrit en
    Octobre 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Controleur de gestion
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2014
    Messages : 82
    Points : 39
    Points
    39
    Par défaut Numérotation personalisée ACCESS
    Bonjour,

    J'utilise ce code pour automatiser et incrémenter un numéro de devis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub N°_DEVIS_Click()
    If IsNull(Me.NrDevis) Then
        Me.NrDevis = Autonumber("Tbl-devis", "Nrdevis", "DEV.[YYYY].", 4)
      End If
    End Sub
    Avec également un module Autonumber. (que voici)
    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
    ' ---
    ' NUMEROTATION AUTOMATIQUE PERSONNALISEE
    ' ---
    ' Entrée : strTable  <- Nom de la table.
    '          strField  <- Nom du champ contenant le numéro
    '          strFormat <- Gabarit décrivant comment formater
    '                       le numéro.
    '          intDigits <- Nombre de caractères pour le
    '                       numéro proprement dit.
    '          dtDate    <- Date de référence pour le calcul
    '                       de l'année, du mois...
    '
    Function Autonumber( _
      ByVal strTable As String, _
      ByVal strField As String, _
      Optional ByVal strFormat As String = "", _
      Optional ByVal intDigits As Integer = 4, _
      Optional ByVal dtDate As Date = #1/1/100#)
     
    ' Quelques variables...
    On Error GoTo AutoNumberErr
    Dim varMarkers As Variant, varMark As Variant
    Dim strCriteria As String
    Dim strNum As String, lngNum As Long, strPart As String
     
    ' Quelques retraitements...
    If dtDate = #1/1/100# Then dtDate = Now()
    strField = "[" & strField & "]"
    strFormat = Replace(strFormat, "'", "''")
     
    ' Marqueurs à remplacer
    varMarkers = Array("YYYY", "YY", "Q", "MM", "WW", "DD")
    For Each varMark In varMarkers
      ' Formater la date et l'injecter dans le template
      strPart = Format(dtDate, varMark, vbMonday, vbFirstFourDays)
      strFormat = Replace(strFormat, "[" & varMark & "]", _
        Format(strPart, String(Len(varMark), "0")))
    Next
     
    ' On cherche la valeur maximale déjà employée dans la table
    strCriteria = strField & " LIKE '" & strFormat & "*'"
    strNum = Nz(DMax(strField, strTable, strCriteria), "")
     
    ' On crée le nouveau numéro
    lngNum = IIf(strNum = "", 1, Val(Mid(strNum, Len(strFormat) + 1)) + 1)
    strFormat = strFormat & Format(lngNum, String(intDigits, "0"))
     
    ' Valeur finale
    Autonumber = strFormat
    Exit Function
     
    AutoNumberErr:
      MsgBox "Erreur : " & Err.Description, vbCritical
      Autonumber = ""
      Exit Function
    End Function
    Cela ne fonctionne plus, il n'incrémente plus le numéro, il insére toujours le DEV.2018.0001

    J'ai tout essayer, rien n'y fait.
    Paradoxalement sur une version conçue il y a plus d'un an, cela fonctionne toujours, par contre dés que je développe une autre application avec la même module et le même code, impossible de de faire fonctionner.

    Merci pour vos réponses

    GERALD

  2. #2
    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,
    Je viens de faire un essai sur une version Acc2013 avec les éléments fournis et l'incrément fonctionne parfaitement.
    Vous évoquez "sur une autre application". Nouvelle base de données ? Acc2007 ou autre ?
    Avez-vous changé quelque chose ? Nom de la table, nom du champ ?
    "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

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Controleur de gestion
    Inscrit en
    Octobre 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Controleur de gestion
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2014
    Messages : 82
    Points : 39
    Points
    39
    Par défaut
    Oui j'ai changé le nom de la table et le nom du champ, mais la syntaxe correspond, ne n'est pas la première fois que je le fait, cela a toujours fonctionné. Autre remarque importante, ce matin j'ai fait une petite base pour essai avec ces codes , cela a fonctionnė , j'ai fermé la base je l'ai réouverte j'ai de nouveau essayé et la plus rien ne fonctionne .

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    plus rien ne fonctionne .
    C-a-d ?

    1. Tu as une erreur ? Laquelle ?
    2. Tu as des donnees mais pas celles attendees ? Qu'attendais-tu ? Qu'as-tu eu ?
    3. Tu n'as pas de donnees ?


    Dans le dernier cas, as-tu valide que ton code s'executait bien ?
    Il est possible que les protections anti-macro d'Access soient enclenchees et empechent le code de fonctionner.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    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
    Pour compléter la réponse de marot_r, n'auriez-vous pas un bandeau de sécurité qui s'affiche à l'ouverture de votre bdd comme sur le lien ici ?
    "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

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Controleur de gestion
    Inscrit en
    Octobre 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Controleur de gestion
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2014
    Messages : 82
    Points : 39
    Points
    39
    Par défaut
    Bonjour,

    Je viens de passer une heure dessus, toujours le même problème.
    Non pas de bandeau de sécurité qui s'affiche !!

    GERALD

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    as-tu valide que ton code s'excutait bien ?

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Controleur de gestion
    Inscrit en
    Octobre 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Controleur de gestion
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2014
    Messages : 82
    Points : 39
    Points
    39
    Par défaut
    Bjr,

    Vous entendez par quoi VALIDE ?
    GERALD

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Controleur de gestion
    Inscrit en
    Octobre 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Controleur de gestion
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2014
    Messages : 82
    Points : 39
    Points
    39
    Par défaut
    Je poste l'exemple

    GERALD
    Fichiers attachés Fichiers attachés

  10. #10
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Vous entendez par quoi VALIDE ?
    je n'ai pas d'accents sur mon clavier donc c'est le participe passe du verbe "Valider".

    Tu mets un point d'arret sur la 1ere ligne de ton code et si Access s'arrete la tu peux suivre pas a pas l'execution en appuyant sur [F8].
    Ainsi tu peux valider que tes instructions sont bien executees ou pas.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Controleur de gestion
    Inscrit en
    Octobre 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Controleur de gestion
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2014
    Messages : 82
    Points : 39
    Points
    39
    Par défaut
    Toujours pareil, même problème, il n'incrémente pas le N°

    a+

  12. #12
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Est-ce que ton code s'execute ou pas ?

    Si oui est-ce qu'il est bien passe sur l'incrementation.

    Tu donnes de resultat sans donner de detail de comment tu t'y rends ce qui fait qu'on est dans le noir complet pour t'aider a trouver la cause.

    L'interface boule de crystal qui serait tres utile dans ce genre de cas n'est pas encore inventee, desole.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  13. #13
    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 marot_r
    J'ai téléchargé la bdd de gérald, l'incrément ne fonctionne pas.
    J'ai créé une bdd (en pj) copié le module Autonumber, créé unt tbl et un form, et sur ma bdd l'incrément fonctionne.
    Je suis sous PackOffice 2013Pro
    Fichiers attachés Fichiers attachés
    "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

  14. #14
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 650
    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 650
    Points : 14 628
    Points
    14 628
    Par défaut
    bonsoir,
    j'ai aussi téléchargé la bd de Gérald03: l'option syntaxe compatible SQL Server (ANSI 92) est cochée dans les options Access de la base (options pour Concepteur d'objets). Il faut donc utiliser ALIKE % au lieu de LIKE *
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ' On cherche la valeur maximale déjà employée dans la table
    strCriteria = strField & " ALIKE '" & strFormat & "%'"
    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 ?

  15. #15
    Nouveau membre du Club
    Homme Profil pro
    Controleur de gestion
    Inscrit en
    Octobre 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Controleur de gestion
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2014
    Messages : 82
    Points : 39
    Points
    39
    Par défaut
    Bjr, merci pour vos réponses,

    Je viens de tester la réponse de tee_grandbois, j'ai mis "ALIKE" au lieu de "LIKE", résultat identique, pas d'incrémentation. On a l'impression que le code est fait pour fonctionner sur deux applications maximum, et que passer ce nombre il ce verrouille. Je l'ai utilisé dans deux applications. Bizarrement, j'ai créer une table et un formulaire sur une application existante ou le code fonctionne bien cela marche a merveille, mais des que je conçois une nouvelle application avec ce code cela ne fonctionne plus !!!!!, j'importe le module en utilisant la commande données externes. Le code événement en copier coller. Et la ça ne fonctionne plus. Est ce que cela pourrai venir d'access lui même, faudrait il le réinstaller ?

    gérald

  16. #16
    Nouveau membre du Club
    Homme Profil pro
    Controleur de gestion
    Inscrit en
    Octobre 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Controleur de gestion
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2014
    Messages : 82
    Points : 39
    Points
    39
    Par défaut
    Je viens de tester l'exemple posté par hyperion13, cela ne fonctionne pas sur mon poste !!!

    GERALD

  17. #17
    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 Gérald,
    Je ne saurais te répondre quant à savoir s'il faut ou non réparer Acc2007. Mais pourquoi pas, sait-on jamais.
    Sinon, une alternative à ton problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Commande7_Click()
    Me.Nrdevis = "DEV." & Format(Now(), "mm") & "-" & Format(Now(), "yyyy") & "." & Format(DMax("iddevis", "tbldevis") + 1, "0000")
    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

  18. #18
    Nouveau membre du Club
    Homme Profil pro
    Controleur de gestion
    Inscrit en
    Octobre 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Controleur de gestion
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2014
    Messages : 82
    Points : 39
    Points
    39
    Par défaut
    Bjr,

    Merci pour votre réponse, je viens de tester le code que vous avez posté, ca fonctionne parfaitement, je vais l'utiliser en attendant de trouver la solution.
    Encore merci

    GERALD

  19. #19
    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
    Re,
    J'ai repris le travail réalisé par Christophe Warin ici pour trouver une alternative aux problème de ta fonction Autonumber().
    Par contre j'ai ajouté un champ dateDev et un champ indice. Il faut sélectionner une date pour ensuite cliquer sur le btn.
    La numérotation reprendra à 0001 à chaque début de nouveau mois de chaque année, ou bien à chaque année.
    Fichiers attachés Fichiers attachés
    "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

  20. #20
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 650
    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 650
    Points : 14 628
    Points
    14 628
    Par défaut
    bonjour,
    Citation Envoyé par Gérald03 Voir le message
    Bjr, merci pour vos réponses,

    Je viens de tester la réponse de tee_grandbois, j'ai mis "ALIKE" au lieu de "LIKE", résultat identique, pas d'incrémentation. On a l'impression que le code est fait pour fonctionner sur deux applications maximum, et que passer ce nombre il ce verrouille. Je l'ai utilisé dans deux applications. Bizarrement, j'ai créer une table et un formulaire sur une application existante ou le code fonctionne bien cela marche a merveille, mais des que je conçois une nouvelle application avec ce code cela ne fonctionne plus !!!!!, j'importe le module en utilisant la commande données externes. Le code événement en copier coller. Et la ça ne fonctionne plus. Est ce que cela pourrai venir d'access lui même, faudrait il le réinstaller ?

    gérald
    ALIKE tout seul ne suffit pas si tu ne remplace pas * par % et c'est pourtant bien ce que j'ai écris !
    Il faut donc utiliser ALIKE % au lieu de LIKE *
    et j'ai même mis le code corrigé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ' On cherche la valeur maximale déjà employée dans la table
    strCriteria = strField & " ALIKE '" & strFormat & "%'"
    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 ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [AC-2016] Numérotation formulaire Access
    Par OZ1977 dans le forum IHM
    Réponses: 4
    Dernier message: 30/03/2017, 13h45
  2. [AC-2007] Numérotation automatique Access A0001, A0002
    Par kenza--farah dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 08/04/2013, 15h03
  3. [AC-2003] Ecrire une fonction personalisée Access
    Par victorzecat dans le forum VBA Access
    Réponses: 2
    Dernier message: 28/09/2009, 18h39
  4. [FPDF] numérotation (personalisée) des pages
    Par laville dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 05/07/2007, 15h24
  5. Numérotation personnalisée access
    Par BCHJ13 dans le forum Access
    Réponses: 1
    Dernier message: 20/06/2007, 16h47

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