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 :

incrementer un champ en fonction d'un type de document


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 12
    Points : 10
    Points
    10
    Par défaut incrementer un champ en fonction d'un type de document
    Bonjour,

    je dois créer une base Access afin de saisir et consulter des dossiers.
    pour le moment tout est géré sur Excel avec un fichier par type de dossier.
    je souhaite tout importer dans Access.

    un premier travail a été d'uniformiser les fichiers. ils ont maintenant la même structure (même nombre de champs, même intitulé...).

    cependant pour certains fichiers, il y a un numéro qui s'incrémente automatiquement. mais le numéro ne démarre pas par 1 et surtout ce n'est pas le même selon le type de dossier (pour un par exemple, il démarre à 275000, pour un autre à 710000).
    à ce stade, je ne sais pas comment faire démarre un numéro automatique autre que par 1, ensuite comment gérer un numéro automatique par dossier ?

    merci pour votre aide.
    ah oui petite précision, je suis plutôt novice en Access

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    Bonsoir et bienvenu sur le forum,
    Pour démarrer un numéro auto a un chiffre précis tu peux par exemple au moment de la création du champ mettre son format à "710"000.
    Mais tu ne peux mettre qu’un seul champ numéro auto par table c’est donc faisable que si tu as une table par dossier.
    Si tu as plusieurs dossiers sur la même table et que tu veux incrémenter un champ il faut le fabriquer par code exemple :
    Sur l’évènement « réception focus » d’un champ « NumAuto » placé après la saisie du « dossier » pour une table appelée « incrément » tu peux essayer le code suivant :
    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
    Private Sub NumAuto_GotFocus()
     
    dos = Me.dossier.Value
     
    Select Case dos
        Case "aa"
        Me.NumAuto = Nz(DMax("NumAuto", "increment", "dossier = '" & Me.dossier & "'"), 710000) + 1
        Case "bb"
        Me.NumAuto = Nz(DMax("NumAuto", "increment", "dossier = '" & Me.dossier & "'"), 275000) + 1
        Case "cc"
         Me.NumAuto = Nz(DMax("NumAuto", "increment", "dossier = '" & Me.dossier & "'"), 100000) + 1
         Case Else
          Me.NumAuto = Nz(DMax("NumAuto", "increment", "dossier = '" & Me.dossier & "'"), 1) + 1
       End Select
     
     
    End Sub

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 12
    Points : 10
    Points
    10
    Par défaut Balises code ! Sélection du code et (#) dans la fenêtre de rédaction des messages
    Bonjour,

    tout d'abord merci pour votre réponse.
    j'ai essayé le code mais ça bugge un peu ...

    en premier lieu, j'ai décrit 3 tables :
    la première concerne la table PRETS (T_PRETS) avec comme premiers champs (ID_PRETS, ID_CLIENTS, FICHIER, NUMPRET)
    la deuxième concerne la table CLIENTS (T_CLIENTS) avec comme premiers champs (ID_CLIENTS, NOM, PRENOM)
    la troisième concerne la table INCREMENT(T_INCREMENT) avec comme champs (FICHIER, NUMPRET,ID_PRETS, ID_CLIENTS)

    je suppose qu'il s'agit de cette dernière dont vous me parliez.
    le NUMPRET est définit comme NumeroAuto.
    en créant le formulaire à partir de cette table, j'ai suivi vos instructions :

    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
    Private Sub NUMPRET_GotFocus()
    FICHIER = Me.FICHIER.Value
     
    Select Case FICHIER
    Case "aa"
    Me.NUMPRET = Nz(DMax("NUMPRET", "T_INCREMENT", "FICHIER = '" & Me.FICHIER & "'"), 710000) + 1
    Case "bb"
    Me.NUMPRET = Nz(DMax("NUMPRET", "T_INCREMENT", "FICHIER = '" & Me.FICHIER & "'"), 275000) + 1
    Case "Tcc"
    Me.NUMPRET = Nz(DMax("NUMPRET", "T_INCREMENT", "FICHIER = '" & Me.FICHIER & "'"), 100000) + 1
    Case Else
    Me.NUMPRET = Nz(DMax("NUMPRET", "T_INCREMENT", "FICHIER = '" & Me.FICHIER & "'"), 1) + 1
    End Select
     
    End Sub
    ça ne fonctionne pas. est-ce la démarche des tables précédentes qui coincent ?
    Merci pour votre retour,

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/06/2011, 15h39
  2. [SQL] Supprimer une ligne en fonction d'un type de champs
    Par Aspic dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 10/07/2007, 16h28
  3. Réponses: 14
    Dernier message: 02/03/2005, 18h15
  4. incrementer un champ automatiquement
    Par vijeo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 18/01/2005, 22h01
  5. Créer un champ en fonction d'un fichier excel
    Par nberthonneau dans le forum Access
    Réponses: 8
    Dernier message: 03/11/2004, 18h02

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