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 :

Aide création format


Sujet :

Access

  1. #1
    Candidat au Club
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Avril 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Avril 2018
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Aide création format
    Bonjour,

    Je fais appel à votre aide car je souhaite créer un numéro automatique pour mes devis et qui change automatiquement à chaque année sous cette forme année-0000.

    Je suis tous nouveau sur access et ne connais pas encore très le fonctionnement.

    Je sais que le 1er champ est la clé primaire et qu'on ne peut pas effectuer cette procédure.

    Dans l'attente de vous lire.

  2. #2
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut Aide création format
    Bonjour,

    J'ai créé un truc analogue pour mon appli, à la différence que j'y implémente également le mois, ce qui ré-initialise le compteur de devis (ou de factures, c'est une fonction équivalente) tous les mois.

    Par exemple, et dans ton cas, imagine une fonction qui te renvoie le prochain numéro de devis comme çà:

    pré-requis: table des devis= tblDevis, clé des devis= DEVUnik (long)., Date du devis= DEVDte (Date), N° du devis= DEVNo (String)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Function NextDev()
       Dim X as long, crit as String, StrSQL As String
     
       X=Nz(DCount("DEVUnik", "tblDevis"),0)
       If X=0 then    'Ici je tiens compte du cas où la table est vide
          NextDev= Format(Now,"yyyy") & "-" & "0001"
          Else
          crit = "clng(right(year(DEVDte),2))=" & CLng(Right(Year(Now), 2))
          StrSQL = "SELECT CLng(Left([DEVNo],2)) AS lAn, CLng(Right([DEVNo],4)) AS Num FROM tblDevis WHERE " & crit & ";"
          Call CreeRequeteTempo(StrSQL)
          NextDEV = Right(Trim(str(Year(Now()))), 2) & "-" & Format(Nz(DCount("Num", "RequTempo"), 0) + 1, "0000")
        End If
    End Function
    Tu remarqueras que j'utilise aussi 2 procédures pour créer des requêtes temporaires et pour les supprimer: "CreeRequeteTempo" & "TueRequete".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub CreeRequeteTempo(StrSQL)
        Dim mabd As Database, Requ As QueryDef, NomBD As String
        Call TueRequete("RequTempo")
        Set mabd = CurrentDb()
        Set Requ = mabd.CreateQueryDef("RequTempo", StrSQL)
        Set mabd = Nothing
    End Sub
    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
    Sub TueRequete(NomRequete)
              On Error GoTo ErrMan
              Dim qdfloop As QueryDef
              Dim mabd As Database
              Dim X As Integer
              Set mabd = CurrentDb()
                  With mabd
                      For Each qdfloop In .QueryDefs
                          If qdfloop.Name = NomRequete Then
                              mabd.QueryDefs.Delete NomRequete
                          End If
                      Next qdfloop
                  End With
              Set mabd = Nothing
    Fin:
              Exit Sub
    ErrMan:
              Resume Fin
    End Sub
    Tout çà à mettre dans un module général.

    Note: je pense que tu es conscient que dans ton raisonnement tu limites la puissance lexicographique de ta fonction à la création de 9999 devis/an.
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  3. #3
    Candidat au Club
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Avril 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Avril 2018
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Aide création format
    Houla trop compliqué, il n'y a pas une formule plus simple ?

  4. #4
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut Aide création format
    Heuu... Shazam ? Abracadabra ?

    Sérieusement, c'est très simple: tu copies ces fonctions dans un module général et tu n'as plus qu'à l'appeler dans un code vba, une requête ou un contrôle en propriété source.
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

Discussions similaires

  1. [POO] Recherche d'aide création de classe
    Par altair8080 dans le forum Langage
    Réponses: 3
    Dernier message: 13/12/2006, 18h31
  2. [Aide] Création d'une interface Ajout/Suppression
    Par Fredods26 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 19/10/2006, 14h16
  3. Ouvrir une aide au format chm
    Par emeraudes dans le forum Access
    Réponses: 8
    Dernier message: 16/06/2006, 16h21
  4. Aide création requette MDX
    Par Tankian dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 23/05/2006, 17h23
  5. Aide expression format de nbr
    Par Virgile59 dans le forum Access
    Réponses: 8
    Dernier message: 07/02/2006, 16h14

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