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 :

Compteur automatique dans un formulaire


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 187
    Par défaut Compteur automatique dans un formulaire
    Bonjour à tous,

    j'ai une requête d'analyse croisée que j'utilise pour créer un formulaire. J'ai un bouton dans le formulaire d'ajout qui me permet d'y ajouter un nouvel enregistrement. J' aimerai créer un compteur automatiquement qui sera incrémenté à chaque fois qu'on ajoutera un nouvel enregistrement.

    Quand on clique sur le bouton d'ajout, ca ouvre


    le formulaire d'ajout qui contient 3 sous-formulaires embarqués.

    Dans le 3eme sous-formulaire j'ai 2 champs. Un champs compteur que j'aimerai crée et un champs qui affiche
    le nom d'utilisateur actuel.

    J'aimerais qu' à l'ouverture du formulaire d'ajout que le 3eme sous-formulaire ajoute automatiquement un
    nouvel enregistrement en incrémentant le compteur .



    le problème est celui ci. Au lieu d'ajouter un seul enregistrement, il m'ajoute directement 3 enregistrements en seule une fois
    voici le code du 3eme sous-formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Sub Form_Current()
     
       If IsNull(Me.compteur ) Then
     
          Me.NomUtilisateur = [Forms]![frm_Utilisateur]![Nom]
     
          End If
     
     
    End Sub
    merci de votre aide.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2007
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2007
    Messages : 169
    Par défaut
    Je pense qu'il te rajoute trois enregistrements simplement car il exécute trois fois la fonction (il doit y avoir des from.requery dans tes formulaires parents).

    Pour éviter ça, il faut donc s'assurer que le compteur est remplis en même temps que tu ajoute ton autre enregistrement.

    Pour le compteur, différents solutions:
    • Si la source est une table: Créer un champs NuméroAuto dans la table source du formulaire
    • Si la source est une requête: Rechercher quel est le numéro maximal dans ta requête source (via un recordset) puis l'incrémenter de 1

  3. #3
    Membre émérite
    Homme Profil pro
    Ingénieur Pilotage
    Inscrit en
    Avril 2009
    Messages
    405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur Pilotage
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 405
    Par défaut
    Pour se créer un numéro auto via une requête , cette fonction doit pourrait t'être utile

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Function NumAutoGen(NomChamp As String, NomTable As String) As Double
    'permet de créer un numéro auto
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Set db = CurrentDb
    Set rs = db.OpenRecordset("Select TOP 1 " & NomChamp & " from " & NomTable & " Order by " & NomTable & "." & NomChamp & " DESC")
    NumAutoGen = rs.Fields(0).Value + 1
    Set rs = Nothing
    Set db = Nothing
    End Function

  4. #4
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 187
    Par défaut
    c'est ce que j'ai fait. Il y a des from.requery dans d'autres mais pas dans mes formulaires parents.
    La source est une table. le champs compteur est NuméroAuto dans la table source du formulaire.

Discussions similaires

  1. Automatiquement dans un formulaire
    Par XCCUBE dans le forum IHM
    Réponses: 2
    Dernier message: 02/02/2007, 21h05
  2. Réponses: 1
    Dernier message: 25/10/2006, 18h06
  3. calculs automatiques dans un formulaire dynamique
    Par renaud26 dans le forum Général JavaScript
    Réponses: 34
    Dernier message: 13/07/2006, 18h13
  4. Réponses: 7
    Dernier message: 11/07/2006, 17h34
  5. Affichage automatique dans un formulaire
    Par Caroclic dans le forum Access
    Réponses: 1
    Dernier message: 19/09/2005, 16h35

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