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 :

Création Numero Devis


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 328
    Par défaut Création Numero Devis
    Bonjour à tous,

    Je cherche à créer un numero devis suite à un click sur un bouton

    Le numero est fait de cette sorte :

    00120080225
    ->001 : Numero du Chef d'Affaire allant de 0 à 20, j'ai rentré c'est info dans une table Commercial, donc dans l'idée il selectionne le CA dans le formulaire puis il clique sur le bouton
    ->2008 : l'année (je suppose que la faudra regarder dans la fonction date()
    -> 02 : le mois (idem)
    -> 25 : le jour (idem)

    Voilà c'est plus pour l'histoire du 001 que je vois pas comment faire, j'ai associé une fonction à mon bouton, je cré un entier qui me servira à l'ingectié ensuite dans ma zone de texte du numero de devis mais aprés je bloque...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CreerNumDevis_Click()
    Dim NumeroDevis As String
    End Sub
    Je veux bien de l'aide, s'il vous plait
    Merci d'avance

    Jim

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub CreerNumDevis_Click()
    Dim NumeroDevis As String
    numeroDevis=fornat$(val(me.CA),"000") & format$(date(),"yyyymmdd")
    me.AffNumeroDevis=numeroDevis
    End Sub
    Ce code va afficher ton numéro de devis dans la zone AffNumeroDevis qu'il faut définir sur ton form.

    Ce numéro doit-il être unique ?

    Ne génères-tu jamais plus d'un seul devis pour une tranche de CA par jour ?

    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.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 328
    Par défaut
    La partie << format$(val(me.CA),"000") >> marche pas, en fait exactement j'ai une table Affaire qui contient ID_CA qui est relié à une table Commercial qui à un champ appellé NumCaForDevis qui contient le nombre associé au CA

    T'as raison, effectivement ça n'arrive quazi jamais mais ça pourrais arriver, dans ce cas là, faudrait faire un test sur les numdevis dans la base affaire ou alors j'ai vu ça sur un exemple passer par une table temporaire je sais pas trop tu en pense quoi ?

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Quelques remarques sur le plan conceptuel...

    D'abord, ce format '00120080225' t'es t-il imposé ou peux-tu faire ce que tu veux ? Car c'est super pénible à lire ce truc ! Alors qu'avec des séparateurs c'est beaucoup plus agréable : 001/2008/02/25
    Ensuite, comme il a été dit par un autre contributeur, il est fort probable qu'un jour ou l'autre, un des chargés d'affaires fera plus d'un devis dans la journée et là ton système de numérotation ne fonctionnera plus. Donc, ajoute le numéro du devis dans le jour : 001/2008/02/25/01 (S'il fait plus de 100 devis dans la journée il est balèze !).

    Ensuite, bien que ce numéro de devis ne soit composé que de chiffres, c'est en fait à considérer comme du texte car tu ne va faire aucune opération arithmétique sur les numéros de devis. Donc commence par formater le numéro du commercial en texte sur trois caractères, puis la date et le numéro de devis dans la journée selon le même principe. Ensuite tu concatènes le tout et tu as ton numéro de devis complet.

    Il sera ensuite facile de chercher tous les numéros de devis du commercial numéro NNN ou ceux de l'année 2008...

    Bon courage.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Citation Envoyé par Myogtha Voir le message
    La partie << format$(val(me.CA),"000") >> marche pas, en fait exactement j'ai une table Affaire qui contient ID_CA qui est relié à une table Commercial qui à un champ appellé NumCaForDevis qui contient le nombre associé au CA
    Tu avais mentionné que le CA était sur l'écran pour choix c'est la raison de ce code. Il faut l'adapter à tes besoins. Par exemple si tu utilise une combobox tu peux aller lire la xième colonne en mettant me.MaCombo.Colonne(x-1) car la numérotation commence à 0.

    T'as raison, effectivement ça n'arrive quazi jamais mais ça pourrais arriver, dans ce cas là, faudrait faire un test sur les numdevis dans la base affaire ou alors j'ai vu ça sur un exemple passer par une table temporaire je sais pas trop tu en pense quoi ?
    Voir la suggestion de CinePhil d'ajouter 01 à la fin de ton numéro.

    Attention toute fois, si tu as plusieurs personnes qui travaillent en même temps, il se peut que tu obtiennes deux fois le même numéro. Il existe des méthodes pour gérer cela mais elles sont un peu lourdes, si tu as besoin de détail, dis-le.

    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.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 328
    Par défaut
    je suis obligé de garder ce type de Numero, par contre je me suis renseigné lorsqu'il en fait plusieur le même jour, il nommé ça : 00120080225-001

    Est ce qu'il serait pas possible de faire un test If numdevis existe alors on fait un autre filtre ?

  7. #7
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Je ne suis pas sur de comprendre ta question ?

    Tu veux ne mettre le -001 que quand il y a déjà un devis qui porte le numéro dans le -001 ? D'ailleur, cela devrait être -002 non ?

    Que veux-tu ?

    00120080225
    00120080225-001

    ou

    00120080225-001
    00120080225-002

    ou

    00120080225
    00120080225-002.

    Comme je l'ai dis ci-avant, tu peux gérer cela mais il faut savoir si deux personnes peuvent générer en même temps le nouveau numéro.

    C-à-d :

    Vendeur A : créé un nouveau devis 00120080225
    Vendeur B : créé un nouveau devis 00120080225

    simultanément !

    Est-ce possible dans ton environement ?

    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.

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

Discussions similaires

  1. [XL-2013] Création de devis
    Par scoobydoos dans le forum Excel
    Réponses: 35
    Dernier message: 21/03/2015, 21h15
  2. création ligne devis/facture liée
    Par nicodvn dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/10/2014, 15h05
  3. [XL-2007] base de chiffrage et création de devis
    Par a.faurie dans le forum Excel
    Réponses: 5
    Dernier message: 14/03/2013, 21h56
  4. Devis pour une création de site ?
    Par fleuve007 dans le forum Devis
    Réponses: 4
    Dernier message: 13/04/2006, 19h50
  5. [devis] Création site web pro
    Par sheepk dans le forum Général Conception Web
    Réponses: 7
    Dernier message: 28/11/2005, 13h07

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