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 :

champ avec incrémentation automatique


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien informatique
    Inscrit en
    Mai 2011
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Technicien informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2011
    Messages : 105
    Par défaut champ avec incrémentation automatique
    Bonjour,

    J'ai cherché et j'ai pas trouvé ma réponse.

    J'ai un formulaire avec un sous formulaire. Ce sous formulaire peut avoir plusieurs enregistrements

    Dans ce sous formulaire je saisis des données dans les champs. Un de ces champs s'appele "numero_but". Si je suis sur la première ligne d'enregistrement je saisi la valeur 1 dans le champ "numero_but", quand je suis sur le 2èmes enregistrements je saisi la valeur 2 dans le champ "numero_but", et ainsi de suite pour l'enregistrement de la 3ème lignes la valeur 3 dans le champ "numero_but"

    Le second problème c'est que quand je suis sur le 2ème enregistrement du formulaire, les données du champ "numéro_but" doivent repartir à 1 dans le sous formulaire.

    J'espère que vous m'avez compris.

    Voici une image du formulaire



    Merci

    Pascal

  2. #2
    Membre chevronné Avatar de robyseb
    Homme Profil pro
    Programmeur-Analyste
    Inscrit en
    Juillet 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur-Analyste
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2011
    Messages : 305
    Par défaut
    Pas trop certain de ce que tu désire ... alors je suppose que tu désire savoir comment faire pour que ta colone s'auto incremente ... a u des connaissance VBA si oui voici un exemple :

    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
    Dim autonumber As long 
    dim nummax as long
     
    nummax = DCount("champ de ta table", "nom de ta table")
    If IsNull(nummax) Then
        autonumber =  "01"
    Else
    If nummax < 10 Then
        autonumber = "0" & (nummax + 1)
    Else
    If nummax < 100 Then
        autonumber = (nummax + 1)
    Else
    If nummax > 100 Then
        autonumber =  (nummax + 1)
    Me.ton champ à incrementer = autonumber
    End If
    End If
    End If
    End If
    end sub

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien informatique
    Inscrit en
    Mai 2011
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Technicien informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2011
    Messages : 105
    Par défaut
    Merci pour la réponse,

    je essayé votre code mais je n'ai rien qui s'affiche dans le champ. Quand j'arrive au troisième enregistrement j'ai un message


  4. #4
    Membre chevronné Avatar de robyseb
    Homme Profil pro
    Programmeur-Analyste
    Inscrit en
    Juillet 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur-Analyste
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2011
    Messages : 305
    Par défaut
    si tu n'a rien qui s'affiche c'est que tu a mal informé le code à la ligne 15 de mon exemple

    le message d'erreur est dû à ta valeur par défault de ton champ

    p.s. Désolé j'étais fatiqué hier soir oufff j'ai corrigé mon code j'ai oublié de changer les valeurs de autorisationvar à autonumber (ce terme sert dans mon code à moi donc toi tu doit l'adapter) et j'ai ajouté la déclaration de nummax

  5. #5
    Membre confirmé
    Homme Profil pro
    Technicien informatique
    Inscrit en
    Mai 2011
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Technicien informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2011
    Messages : 105
    Par défaut
    merci,

    J'arrive pas à faire fonctionner. Je n'ai rien dans le champ

    voici mon code

    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
     
    Private Sub champ1_GotFocus()
    Dim autonumber As Long
    Dim nummax As Long
     
    nummax = DCount("champ1", "test")
    If IsNull(nummax) Then
        autonumber = "01"
    Else
    If nummax < 10 Then
        autonumber = "0" & (nummax + 1)
    Else
    If nummax < 100 Then
        autonumber = (nummax + 1)
    Else
    If nummax > 100 Then
        autonumber = (nummax + 1)
    Me.champ1 = autonumber
    End If
    End If
    End If
    End If
     
    End Sub
    Merci

  6. #6
    Membre chevronné Avatar de robyseb
    Homme Profil pro
    Programmeur-Analyste
    Inscrit en
    Juillet 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur-Analyste
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2011
    Messages : 305
    Par défaut
    Salut j'ai fait les tests et maintenant ca fonctionne ... excepté que tu doit mettre le code sur le click de ta case sinon tu met ton formulaire en boucle
    Tu doit laisser le champ auto de ta table et créer une autre colone soit ton champ1.

    voici le code
    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
    Private Sub champ1_click()
    Dim autonumber As String
    Dim nummax As Integer
     
    nummax = DCount("champ1", "test")
    autonumber = nummax
    If nummax = 0 Then
        autonumber = "01"
     
    Else
    If nummax < 9 Then
        autonumber = "0" & (nummax + 1)
     
    Else
    If nummax < 99 Then
        autonumber = (nummax + 1)
     
    Else
    If nummax > 100 Then
        autonumber = (nummax + 1)
    End If
    End If
    End If
    End If
    Me.champ1 = autonumber
    DoCmd.GoToRecord , , acNext
     
     
    End Sub

Discussions similaires

  1. Enregistrer champ qui incrémente automatiquement.
    Par mghari50 dans le forum VBA Access
    Réponses: 9
    Dernier message: 30/10/2011, 17h19
  2. champ avec date automatique
    Par Daniela dans le forum Langage
    Réponses: 6
    Dernier message: 18/05/2011, 08h53
  3. Réponses: 3
    Dernier message: 01/02/2009, 13h32
  4. Comment descendre d'une ligne dans un champ avec filtre automatique
    Par frolland46 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/06/2008, 20h15
  5. Composant champ avec incrément
    Par david71 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 29/06/2007, 15h39

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