OVH Cloud OVH Cloud

Modification des propriétés d'un champ d'une table

3 réponses
Avatar
fabrice
Bonjour,

j'ai d=E9ja post=E9 un message concernant ce pb mais je pense=20
qu'il etait mal formul=E9 donc je le reformule:
Est-il possible de modifier les propri=E9t=E9s d'un champ=20
d'une table par du code?C'est =E0 dire pouvoir modifier les=20
propri=E9t=E9s telles que la taille du champ,le format,la=20
valeur par d=E9faut ou la l=E9gende?

Si oui comment?
merci

3 réponses

Avatar
3stone
Salut,

"fabrice"
j'ai déja posté un message concernant ce pb mais je pense
qu'il etait mal formulé donc je le reformule:
Est-il possible de modifier les propriétés d'un champ
d'une table par du code?C'est à dire pouvoir modifier les
propriétés telles que la taille du champ,le format,la
valeur par défaut ou la légende?


Quelle version d'Access ?

Regarde "Alter Table" dans l'aide...
CurrentProject.Connection.Execute "ALTER TABLE nomDeLaTable ALTER COLUMN nomDuChamp TEXT(55);"

ce qui fait passer le champ donnée en un Text(55)


--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------
Avatar
michel
Bonjour
Toutes les proprietes ne sont pas accessibles en ecriture. Pour la legende
ca marche si elle est deja remplie ou alors il faut la creer.
Un exemple pour lister les proprietes du champ test de ma table tblconfig et
modifier la legende
Adapte à tes besoins

Function test()
Dim db As Database
Dim tb As TableDef
Dim j As Integer
Dim max As Integer
Dim valprop, nomprop As String
Dim fld As Field
Dim prop As Property
On Error Resume Next
Set db = CurrentDb()
Set tb = db.TableDefs("tblconfig")
Set fld = tb.Fields("test")
max = fld.Properties.Count - 1
For j = 0 To max
valprop = fld.Properties(j).Value
nomprop = fld.Properties(j).Name
Debug.Print nomprop, , valprop, Str(j)
Next
On Error GoTo err_prop

'fld.Properties("DefaultValue") = "tmp" se plante car en lecture seule
'idem pour la taille
'la legende elle peut etre modifiée si elle existe dans l'interface
' sinon on l'ajoute en gerant les erreurs
fld.Properties("caption") = "titi"
Exit Function
err_prop:
Set prop = fld.CreateProperty("caption", dbText, "titi")

fld.Properties.Append prop
Resume Next
End Function
@plus
michel
"fabrice" a écrit dans le message de news:
08de01c3a44c$4a630920$
Bonjour,

j'ai déja posté un message concernant ce pb mais je pense
qu'il etait mal formulé donc je le reformule:
Est-il possible de modifier les propriétés d'un champ
d'une table par du code?C'est à dire pouvoir modifier les
propriétés telles que la taille du champ,le format,la
valeur par défaut ou la légende?

Si oui comment?
merci
Avatar
fabrice
Merci!!

-----Message d'origine-----
Bonjour
Toutes les proprietes ne sont pas accessibles en
ecriture. Pour la legende

ca marche si elle est deja remplie ou alors il faut la
creer.

Un exemple pour lister les proprietes du champ test de ma
table tblconfig et

modifier la legende
Adapte à tes besoins

Function test()
Dim db As Database
Dim tb As TableDef
Dim j As Integer
Dim max As Integer
Dim valprop, nomprop As String
Dim fld As Field
Dim prop As Property
On Error Resume Next
Set db = CurrentDb()
Set tb = db.TableDefs("tblconfig")
Set fld = tb.Fields("test")
max = fld.Properties.Count - 1
For j = 0 To max
valprop = fld.Properties(j).Value
nomprop = fld.Properties(j).Name
Debug.Print nomprop, , valprop, Str(j)
Next
On Error GoTo err_prop

'fld.Properties("DefaultValue") = "tmp" se plante car
en lecture seule

'idem pour la taille
'la legende elle peut etre modifiée si elle existe
dans l'interface

' sinon on l'ajoute en gerant les erreurs
fld.Properties("caption") = "titi"
Exit Function
err_prop:
Set prop = fld.CreateProperty("caption",
dbText, "titi")


fld.Properties.Append prop
Resume Next
End Function
@plus
michel
"fabrice" a écrit dans le
message de news:

08de01c3a44c$4a630920$
Bonjour,

j'ai déja posté un message concernant ce pb mais je pense
qu'il etait mal formulé donc je le reformule:
Est-il possible de modifier les propriétés d'un champ
d'une table par du code?C'est à dire pouvoir modifier les
propriétés telles que la taille du champ,le format,la
valeur par défaut ou la légende?

Si oui comment?
merci


.