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 06/12/2011, 09h47   #1
Nouveau Membre du Club
 
Inscription : août 2008
Messages : 113
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 113
Points : 27
Points : 27
Par défaut Boucles avec champs d'un formulaire

Bonjour,
J'ai un formulaire Access (projet ADP) en table de données avec des colonnes ou champs (id, A, B, C, etc...) où id est texte et le reste numérique. J'aimerai en VBA avec l'aide d'une boucle genre FOR...NEXT designer chaque champ numérique de mon formulaire et y pratiquer dessus un calcul genre somme par exemple. Pouvez vous m'indiquer le code VBA pour designer un champ numérique et comment l'insérer dans une boucle.
Merci pour toute aide
zemblamoh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 11h46   #2
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 040
Points : 11 040
Bonjour,

As-tu vu cet item de la FAQ ?
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/12/2011, 13h54   #3
Nouveau Membre du Club
 
Inscription : août 2008
Messages : 113
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 113
Points : 27
Points : 27
Merci pour la réponse.
J'ai déjà vu ce tutorial et j'ai essayé le code mais le programme bloque au niveau de:
Citation:
FOR Each ctrl in FrmTable1.Controls
Il m'affiche le message suivant:
Objet requis.
En plus j'aurai de la peine à lui faire savoir si mon ctrl est numérique ou texte.
Merci
zemblamoh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 14h37   #4
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 040
Points : 11 040
Voici un exemple.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub btTest_Click()
Dim ctl As Control
For Each ctl In Me.Controls
  If IsNumeric(ctl) Then
    MsgBox "Mon nom est : " & ctl.Name & vbLf _
           & "Mon type est numérique."
  ElseIf IsDate(ctl) Then
    MsgBox "Mon nom est : " & ctl.Name & vbLf _
           & "Mon type est une date."
  Else
    MsgBox "Mon nom est : " & ctl.Name & vbLf _
           & "Mon type est du texte."
  End If
Next ctl
End Sub
En annexe, la preuve que ça marche.
Fichiers attachés
Type de fichier : zip 20111206zemblamoh.zip (13,0 Ko, 4 affichages)
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/12/2011, 20h29   #5
Nouveau Membre du Club
 
Inscription : août 2008
Messages : 113
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 113
Points : 27
Points : 27
Par défaut champs d'un formulaire en boucle

Le problème est réglé avec votre code.
En plus ça m'a permis de trouver la solution à une question que j'ai posée ailleurs (IHM) et qui était relatif au masquage de certains champs dont la somme est égale à zéro ou reste vide. Voici le programme finale au cas où :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub Form_Current()
Dim ctrl As Control
'
For Each ctrl In Me.Controls
'Debug.Print ctrl.Name
On Error Resume Next
If IsNumeric(ctrl) Or IsNull(ctrl) Then
s_ctrl = DSum(ctrl.Name, "Table1")
If s_ctrl = 0 Or IsNull(s_ctrl) Then
ctrl.ColumnHidden = True
Else
ctrl.ColumnHidden = False
End If
End If
'
Next
End Sub
Merci encore
zemblamoh 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 15h44.


 
 
 
 
Partenaires

Hébergement Web