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 02/02/2012, 17h32   #1
Membre habitué
 
Inscription : janvier 2006
Messages : 317
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 317
Points : 106
Points : 106
Par défaut Propriétés d'un champ dont le nom est une variable

Bonjour,
Dans le code suivant
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  Dim MaBd As DAO.Database
  Dim MaTable As DAO.TableDef
  Dim chp As DAO.Field
 Set MaBd = CurrentDb 
 Set MaTable = MaBd.TableDefs(strNom)
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset(strNom)
Dim vchp As Variant
With rst
  For Each chp In MaTable.Fields
       vchp = chp.OrdinalPosition
       'Traitement de vchp
 next
end with
on récupère bien la valeur de la position du champ.
Si on remplace ligne 11 "OrdinalPosition" par "Value", rien ne va plus.
Erreur 3219 : opération invalide.
Or Value est une des propriétés de chp.
Avec Name, pas d'erreur

Pourquoi ?
Merci de l'aide
Amicalement
AndréPe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 17h50   #2
Membre habitué
 
Inscription : janvier 2006
Messages : 317
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 317
Points : 106
Points : 106
Je me réponds : Ca ne peut pas fonctionner, parceque je n'ai pas défini l'enregistrement pour lequel je recherche la valeur.

Il faut récupérér les noms des champs dans une table par ex, puis fermer la MaTable et la réouvrir avec le "do while not .EOF" pour parcourir tous les enregistrements.

J'essaie ...
Avec mes excuses pur ma précipitation.
A+
AndréPe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 18h03   #3
Nouveau Membre du Club
 
Inscription : mars 2010
Messages : 40
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 40
Points : 27
Points : 27
Bonjour,
il y aurait peut-être un .MoveNext à rajouter. Un truc comme ça devrait mettre dans vchp successivement les valeurs contenues dans le jeu de données de ta table, en la parcourant ligne par ligne et de gauche à droite. Enfin.. si on n'a pas modifié l'ordre des colonnes à l'affichage. J'imagine que l'ordre à l'affichage en mode 'feuille de données' et l'ordre intrinsèque des colonnes sont deux choses distinctes et qu'on peut modifier l'un sans altérer l'autre.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Dim MaBd As DAO.Database
Dim MaTable As DAO.TableDef
Dim chp As DAO.Field
 
Set MaBd = CurrentDb 
Set MaTable = MaBd.TableDefs(strNom)
 
Dim rst As DAO.Recordset
Set rst = MaTable.OpenRecordset
 
Dim vchp As Variant
With rst
 Do While Not .EOF
   For Each chp In rst.Fields
       vchp = chp.Value
       'Traitement de vchp
   next
   .MoveNext
 Loop
end with
rstck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2012, 09h36   #4
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 090
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 090
Points : 11 622
Points : 11 622
Bonjour,

En effet Value est bien une propriété de Recordset.Fields mais par de Tabledefs.fields


Ne pas oublier Resolu.

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab 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 14h36.


 
 
 
 
Partenaires

Hébergement Web