Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/09/2011, 10h03   #1
Invité régulier
 
Inscription : novembre 2007
Messages : 53
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 53
Points : 6
Points : 6
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 :
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.
kesamba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 10h13   #2
Membre actif
 
Homme Lionel Garnier
Consultant informatique
Inscription : octobre 2007
Messages : 134
Détails du profil
Informations personnelles :
Nom : Homme Lionel Garnier
Localisation : France, Somme (Picardie)

Informations professionnelles :
Activité : Consultant informatique
Secteur : Industrie

Informations forums :
Inscription : octobre 2007
Messages : 134
Points : 179
Points : 179
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
yonnel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 10h22   #3
Membre confirmé
 
Avatar de lelensois16
 
Homme Romain M.
Étudiant
Inscription : avril 2009
Messages : 167
Détails du profil
Informations personnelles :
Nom : Homme Romain M.
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Étudiant
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 167
Points : 204
Points : 204
Pour se créer un numéro auto via une requête , cette fonction doit pourrait t'être utile

Code :
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
lelensois16 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 10h34   #4
Invité régulier
 
Inscription : novembre 2007
Messages : 53
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 53
Points : 6
Points : 6
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.
kesamba est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h21.


 
 
 
 
Partenaires

Hébergement Web