OVH Cloud OVH Cloud

Récupération des noms de champs

3 réponses
Avatar
Jean Marie VIGNEAUD
Bonjour,

Je suis en train de faire un bout de code qui me permet de"bourrer" avec des
blancs les champs d'une table.
J'utilise le code suivant qui fonctionne bien :

Exemple pour le champ numero ligne liquidation :
=================================
If IsNull(rst![DET numligneliq]) Then
rst![DET numligneliq] = Space(4)
Else
rst![DET numligneliq] = rst![DET numligneliq] + Space(4 -
Len(rst![DET numligneliq]) + 1)
End If
=================================

Je dois taper ce bout de code autant de fois que j'ai de champs dans ma
table.

Question :
=======

Pour alleger l'écriture du code, je pensais faire une boucle en récupérant
le nom de chaque champ de la table avec sa longueur.

Existe t'il un bout de code qui me permette de scanner et de récupérer le
nom de chaque champ d'une table avec sa longueur ?

Si vous avez une idée avant que je ne me lance dans le copier-coller, cela
serait génial !

Merci de votre aide précieuse !

Cordialement,

Jean Marie

3 réponses

Avatar
Raymond [mvp]
Bonjour.

Avant de te proposer une solution soit par requête soit par vba, il faut que
tu sois informé que chaque fois que tu vas passer sur tes contrôles en
saisie dans un formulaire, tous les espaces non significatifs de la fin
seront supprimpés par access, ce qui va annuler les effets de cette belle
procédure que tu veux faire.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Jean Marie VIGNEAUD" a écrit dans le
message de news: ctt1mm$2oj$
Bonjour,

Je suis en train de faire un bout de code qui me permet de"bourrer" avec
des
blancs les champs d'une table.
J'utilise le code suivant qui fonctionne bien :

Exemple pour le champ numero ligne liquidation :
================================ > If IsNull(rst![DET numligneliq]) Then
rst![DET numligneliq] = Space(4)
Else
rst![DET numligneliq] = rst![DET numligneliq] + Space(4 -
Len(rst![DET numligneliq]) + 1)
End If
================================ >
Je dois taper ce bout de code autant de fois que j'ai de champs dans ma
table.

Question :
====== >
Pour alleger l'écriture du code, je pensais faire une boucle en récupérant
le nom de chaque champ de la table avec sa longueur.

Existe t'il un bout de code qui me permette de scanner et de récupérer le
nom de chaque champ d'une table avec sa longueur ?

Si vous avez une idée avant que je ne me lance dans le copier-coller, cela
serait génial !

Merci de votre aide précieuse !

Cordialement,

Jean Marie




Avatar
Jean Marie VIGNEAUD
En fait, une fois les bourrages terminés, j'exporte les données pour un
traitement avec une autre application.

Merci.

"Raymond [mvp]" a écrit dans le message de
news: #
Bonjour.

Avant de te proposer une solution soit par requête soit par vba, il faut
que

tu sois informé que chaque fois que tu vas passer sur tes contrôles en
saisie dans un formulaire, tous les espaces non significatifs de la fin
seront supprimpés par access, ce qui va annuler les effets de cette belle
procédure que tu veux faire.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Jean Marie VIGNEAUD" a écrit dans le
message de news: ctt1mm$2oj$
Bonjour,

Je suis en train de faire un bout de code qui me permet de"bourrer" avec
des
blancs les champs d'une table.
J'utilise le code suivant qui fonctionne bien :

Exemple pour le champ numero ligne liquidation :
================================ > > If IsNull(rst![DET numligneliq]) Then
rst![DET numligneliq] = Space(4)
Else
rst![DET numligneliq] = rst![DET numligneliq] + Space(4 -
Len(rst![DET numligneliq]) + 1)
End If
================================ > >
Je dois taper ce bout de code autant de fois que j'ai de champs dans ma
table.

Question :
====== > >
Pour alleger l'écriture du code, je pensais faire une boucle en
récupérant


le nom de chaque champ de la table avec sa longueur.

Existe t'il un bout de code qui me permette de scanner et de récupérer
le


nom de chaque champ d'une table avec sa longueur ?

Si vous avez une idée avant que je ne me lance dans le copier-coller,
cela


serait génial !

Merci de votre aide précieuse !

Cordialement,

Jean Marie








Avatar
Raymond [mvp]
Vu sous cet angle , c'est bieN
je te donne une procédure ci-dessous que tu devras tester à fond car je ne
l'ai pas fait, mais ça devrait aller.
cocher la référence DAO 3.6

Dim Db As DAO.Database
Dim Tdf As DAO.TableDef
Dim Fld As DAO.Field
Dim Ctl As Control
Dim Rs As DAO.Recordset
Set Db = CurrentDb
Set Tdf = Db.TableDefs("Table2")
Set Rs = Db.OpenRecordset("table2")
If Rs.BOF Then GoTo Exit_Sub
Do Until Rs.EOF
Rs.Edit
For Each Fld In Tdf.Fields
If Fld.Type = dbText Then
Rs.Fields(Fld.Name) = Rs.Fields(Fld.Name) &
Space(Fld.Size - Nz(Len(Rs.Fields(Fld.Name)), 0))
End If
Next
Rs.Update
Rs.MoveNext
Loop
Exit_Sub:
Set Rs = Nothing
Set Tdf = Nothing
Set Db = Nothing
Set Fld = Nothing
Set Ctl = Nothing


--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Jean Marie VIGNEAUD" a écrit dans le
message de news: ctt6un$714$
En fait, une fois les bourrages terminés, j'exporte les données pour un
traitement avec une autre application.

Merci.

"Raymond [mvp]" a écrit dans le message
de
news: #
Bonjour.

Avant de te proposer une solution soit par requête soit par vba, il faut
que

tu sois informé que chaque fois que tu vas passer sur tes contrôles en
saisie dans un formulaire, tous les espaces non significatifs de la fin
seront supprimpés par access, ce qui va annuler les effets de cette belle
procédure que tu veux faire.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Jean Marie VIGNEAUD" a écrit dans le
message de news: ctt1mm$2oj$
Bonjour,

Je suis en train de faire un bout de code qui me permet de"bourrer"
avec
des
blancs les champs d'une table.
J'utilise le code suivant qui fonctionne bien :

Exemple pour le champ numero ligne liquidation :
================================ >> > If IsNull(rst![DET numligneliq]) Then
rst![DET numligneliq] = Space(4)
Else
rst![DET numligneliq] = rst![DET numligneliq] + Space(4 -
Len(rst![DET numligneliq]) + 1)
End If
================================ >> >
Je dois taper ce bout de code autant de fois que j'ai de champs dans ma
table.

Question :
====== >> >
Pour alleger l'écriture du code, je pensais faire une boucle en
récupérant


le nom de chaque champ de la table avec sa longueur.

Existe t'il un bout de code qui me permette de scanner et de récupérer
le


nom de chaque champ d'une table avec sa longueur ?

Si vous avez une idée avant que je ne me lance dans le copier-coller,
cela


serait génial !

Merci de votre aide précieuse !

Cordialement,

Jean Marie