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 :

incrémenter et controler


Sujet :

Access

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 79
    Points : 44
    Points
    44
    Par défaut incrémenter et controler
    Bonjour,

    J’ai importé des données externes dans access afin d’automatiser la saisie à l’aide d’un form.
    Ce form contient plusieurs listbox ainsi qu’une textbox faisant référence à un n° d’ordre contenu dans ma table au format texte ( ex :00001 )
    Lorsque je valide les saisies effectuées, l’ensemble se concatène sous cette forme :TexteaTextebTextec00001.
    -Je souhaiterai donc incrémenter de 1 ce n° d’ordre après chaque validation du form et qu’il soit disponible mais non modifiable sur le prochain enregistrement en conservant le même format (ex :00002)
    -Si je dépose ma base sur un lecteur reseau, comment éviter que le même n° soit validé par 2 utilisateurs ayant ouvert le même form ?

    je dois avouer que je sèche un peu sur le sujet

    merci d'avance pour vos pistes

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut

    Comment enregistre tu tes données dans ta table ?

    Par un recordset ou ta table est-elle la source de ton formulaire ?

    Starec

  3. #3
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Salut,

    Je suppose que tu veux parler de création d'un nouvel enregistrement quand tu dis "aprés chaque validation ".
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    Merci pour vos réponses

    Oui et Oui
    Ma table est la source du form
    et en ce qui concerne la validation, je souhaite cliquer sur un bouton et mettre cet évènement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
    puis passer à un nouvel enregistrement avec le N° incrémenté

  5. #5
    Invité
    Invité(e)
    Par défaut
    Re

    A mon avis il ne faut pas afficher ton numéro, il faut le générer juste avant l'enregistrement quand tu cliques ton bouton pour enregistrer. Ainsi il sera crée au dernier moment, et avant de le crée tu testes le dernier numéro dans ta base.

    Normalement tu n'auras pas le risque de doublon.

    De plus si tu déclares ce numéro comme clé primaire tu auras alors aucun risque, ta table ne l'acceptera pas.

    Starec

  6. #6
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Tu peux sans doute faire qq chose comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Form_BeforeUpdate(Cancel As Integer)
        Dim NewNum  As Long
        If Me.NewRecord Then
            NewNum = Format$(CLng(DMax("NomChamp", "Matable")) + 1, "00000")
            Me![NomChamp] = NewNum
        End If
    End Sub
    Auquel il faut rajouter une gestion d'erreur pour le cas improbable où tu aurais un autre user qui valide juste entre temps.


    Sinon, tu peux anticiper, en créant un bouton Nouveau dans lequel tu crées une nouvele enregistrement que tu sauvegardes aussitôt ... ainsi l'utilisateur voit dés le début le numéro.
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  7. #7
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    merci Mr le Viking
    je vais tester ç'a. pour l'instant j'en suis au stade du projet, je risque donc de revenir...
    pour info, à quoi correspond la fonction CLng ? dans l'aide access ce n'est pas clair pour moi

  8. #8
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Ton champ étant de type texte, il faut le transcrire en numérique,... de type long puisque tu as potentiellement un nombre supérieur à 32768 (quoique tu as de la marge ).
    CLng convertit ton texte (le max de la table) en numérique, utilisé afin de pouvoir lui ajouter 1.


    En fait, il n'est peut être pas indispensable car Access (ou plutot le VBA) ferait sans doute implicitement la conversion avant de faire la somme.... mais c'est plus propre et il fera bien ainsi une conversion en long.
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  9. #9
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 79
    Points : 44
    Points
    44
    Par défaut
    Merci,
    J'ai encore avancé d'un petit pas..
    je vais rédiger un autre post qui concerne la recherche multicritère.

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

Discussions similaires

  1. [WD17] Incrémentation par 0.5 dans un controle SPIN
    Par rvandelannoote dans le forum WinDev
    Réponses: 2
    Dernier message: 05/06/2013, 15h34
  2. Réponses: 3
    Dernier message: 04/02/2011, 13h36
  3. incrémentation controle dans un formulaire.
    Par benoist.cardinal dans le forum IHM
    Réponses: 8
    Dernier message: 20/02/2008, 00h07
  4. [controle] propriété read only
    Par Fizgig dans le forum Composants VCL
    Réponses: 6
    Dernier message: 28/08/2002, 10h30
  5. Rx Controls Gif animés
    Par toufou dans le forum Composants VCL
    Réponses: 6
    Dernier message: 23/08/2002, 14h09

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