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 24/08/2011, 10h47   #1
Invité de passage
 
Homme
Inscription : août 2011
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 15
Points : 4
Points : 4
Par défaut remplissage formulaire automatique

Bonjour,
je souhaite remplir un champ de formulaire automatiquement (champ4) en fonction de la valeur contenue dans le champ 1 et des 2 seuils définisq dans les chamep 2 et 3 .
Pour cela j'ai écrit le code ci dessous.
Cependant je suis obligé de cliquer sur chaque ligne du formulaire continu qui en compte 20000 et c'est très long et fastidieux.
que dois-je modifier dans le code ci dessous pour qu'il execute lui meme le code pour toutes les lignes du formulaire.
Merci d'avance pour votre aide précieuse

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Form_Current()
If [champ1] > [champ2] Then
    If [champ1] > [champ3] Then
    [champ4] = "A"
    GoTo ligneX
    End If
    If [champ1] <= [champ3] Then
    [champ4] = "B"
    GoTo ligneX
    End If
End If
[champ4] = "C"
 
ligneX:
End Sub
sylvmand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 12h12   #2
Membre Expert
 
Avatar de bernardmichel
 
Inscription : janvier 2004
Messages : 985
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 985
Points : 1 028
Points : 1 028
Envoyer un message via MSN à bernardmichel Envoyer un message via Skype™ à bernardmichel
bjr,

Si tu souhaites faire cela, il te faut quitter l'idée de le faire sur la base d'un formulaire et passer tes données dans un recordset (ou dans une requête sql).
Voici une petite démo avec une table de mon invention, qui reprend les champs que tu mentionnes dans ton post:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Dim rst     As DAO.Recordset
Dim I       As Integer
 
    Set rst = CurrentDb.OpenRecordset("tblDemo")
 
    With rst
        .MoveLast
        .MoveFirst
        For I = 1 To .RecordCount   ' Il existe d'autre moyens pour
                                    ' passer sur tous les enregistrements
            .Edit
            If !Champ1 > !champ2 And !Champ1 > !champ3 Then
                If !Champ1 > !champ3 Then !champ4 = "A"
                If !Champ1 <= !champ3 Then !champ4 = "B"
            Else
                !champ4 = "C"
            End If
            .Update
            .MoveNext
        Next I
    End With
 
    Set rst = Nothing
Voilà, contrôles peut-être que les conditions de remplissage du "Champ4" soient vraiment respectées j'ai fait cela un peu en vitesse...
bernardmichel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 23h03   #3
Invité de passage
 
Homme
Inscription : août 2011
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 15
Points : 4
Points : 4
Merci pour le code, cela fonctionne presque: Access me renvoie l'erreur n°6 dépassement de capacité car ma table comporte plus de 150000 lignes.
Y a t il un moyen de contourner cela ?
merci pour votre aide très précieuse
sylvmand est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/08/2011, 23h57   #4
Membre Expert
 
Avatar de bernardmichel
 
Inscription : janvier 2004
Messages : 985
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 985
Points : 1 028
Points : 1 028
Envoyer un message via MSN à bernardmichel Envoyer un message via Skype™ à bernardmichel
Bonsoir !

Je pense que ceci devrait convenir:
bernardmichel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 08h17   #5
Invité de passage
 
Homme
Inscription : août 2011
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 15
Points : 4
Points : 4
Merci beaucoup c'est parfait !
sylvmand est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h53.


 
 
 
 
Partenaires

Hébergement Web