Question à programmeur pointu

Le
CErnst
Bonjour et Bonne Année

dans le cadre du passage d'une application Access 2003 vers 2007, qui sait
comment modifier par programme un champ mémo d'une table afin de passer la
propriété "Format du texte" de "Texte Brut" à "Texte Enrichi " ? Je n'ai pas
trouvé beaucoup d'aide dans l'Aide
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilbert
Le #18308401
Bonjour,

Je n'ai pas 2007 sous la main pour tester mais voici une idée:

Si tu connais le nom de la propriété tu peux faire (a condition que la
propriété ne soit pas en lecture seule)
Dim Tbl As DAO.TableDef
Dim Fld As DAO.Field
Dim Db As DAO.Database
Dim Prop As DAO.Property

Set Db = CurrentDb
Set Tbl = Db.TableDefs(NomDeLaTable) 'Pour une seule table
Set fld=tbl.Fields("LeNomDuChamp")
fld.Properties("LeNomDeLaPropriété").Value= LaValeurEnTexte ou
LaValeurEnNumerique
Ce devrait être quelque chose comme
fld.Properties("TextFormat").Value= "RichText"


Si tu ne connais pas le nom de la propriété, voici une procédure qui te
permet de lister les propriétés d'un champ.


Sub ListeProprietesChamps()
On Error Resume Next

Dim Tbl As DAO.TableDef
Dim Fld As DAO.Field
Dim Db As DAO.Database
Dim Prop As DAO.Property

Set Db = CurrentDb
Set Tbl = Db.TableDefs(NomDeLaTable) 'Pour une seule table
'For Each Tbl In Db.TableDefs 'Boucle sur toutes les tables
For Each Fld In Tbl.Fields
Debug.Print "====================================="
Debug.Print Fld.Name
For Each Prop In Fld.Properties
Debug.Print "------------------------"
Debug.Print "Nom", Prop.Name
Debug.Print "Type", Prop.Type
Debug.Print "Valeur", Prop.Value
Next
Next
Set Tbl = Nothing
Set Fld = Nothing
Set Db = Nothing
End Sub


--
Cordialement,

Gilbert


"CErnst" news:%
Bonjour et Bonne Année...

dans le cadre du passage d'une application Access 2003 vers 2007, qui sait
comment modifier par programme un champ mémo d'une table afin de passer la
propriété "Format du texte" de "Texte Brut" à "Texte Enrichi " ? Je n'ai


pas
trouvé beaucoup d'aide dans l'Aide...




CErnst
Le #18308781
Merci beaucoup, mais le problème est qu'elle n'apparaît pas dans les
propriétés......
Ci-dessous la liste des propriétés d'un champ mémo

Value
Attributes
CollatingOrder
Type
Name
OrdinalPosition
Size
SourceField
SourceTable
ValidateOnSet
DataUpdatable
ForeignName
DefaultValue
ValidationRule
ValidationText
Required
AllowZeroLength
AppendOnly
FieldSize
OriginalValue
VisibleValue
ColumnWidth
ColumnOrder
ColumnHidden


"Gilbert"
Bonjour,

Je n'ai pas 2007 sous la main pour tester mais voici une idée:

Si tu connais le nom de la propriété tu peux faire (a condition que la
propriété ne soit pas en lecture seule)
Dim Tbl As DAO.TableDef
Dim Fld As DAO.Field
Dim Db As DAO.Database
Dim Prop As DAO.Property

Set Db = CurrentDb
Set Tbl = Db.TableDefs(NomDeLaTable) 'Pour une seule table
Set fld=tbl.Fields("LeNomDuChamp")
fld.Properties("LeNomDeLaPropriété").Value= LaValeurEnTexte ou
LaValeurEnNumerique
Ce devrait être quelque chose comme
fld.Properties("TextFormat").Value= "RichText"


Si tu ne connais pas le nom de la propriété, voici une procédure qui te
permet de lister les propriétés d'un champ.


Sub ListeProprietesChamps()
On Error Resume Next

Dim Tbl As DAO.TableDef
Dim Fld As DAO.Field
Dim Db As DAO.Database
Dim Prop As DAO.Property

Set Db = CurrentDb
Set Tbl = Db.TableDefs(NomDeLaTable) 'Pour une seule table
'For Each Tbl In Db.TableDefs 'Boucle sur toutes les tables
For Each Fld In Tbl.Fields
Debug.Print "====================================="
Debug.Print Fld.Name
For Each Prop In Fld.Properties
Debug.Print "------------------------"
Debug.Print "Nom", Prop.Name
Debug.Print "Type", Prop.Type
Debug.Print "Valeur", Prop.Value
Next
Next
Set Tbl = Nothing
Set Fld = Nothing
Set Db = Nothing
End Sub


--
Cordialement,

Gilbert


"CErnst" news:%
Bonjour et Bonne Année...

dans le cadre du passage d'une application Access 2003 vers 2007, qui
sait
comment modifier par programme un champ mémo d'une table afin de passer
la
propriété "Format du texte" de "Texte Brut" à "Texte Enrichi " ? Je n'ai


pas
trouvé beaucoup d'aide dans l'Aide...









Gilbert
Le #18313721
Bonjour,

As-tu exécuté la procédure sur la base au format 2007?

J'ai fait le test sur 2007.
J'ai bien une propriété qui s'appelle TextFormat qui est égale à
0 (acTextFormatPlain) si Texte brut
1 (acTextFormatHTMLRichText) si Texte enrichi

--
Cordialement,

Gilbert


"CErnst"
Merci beaucoup, mais le problème est qu'elle n'apparaît pas dans les
propriétés......
Ci-dessous la liste des propriétés d'un champ mémo

Value
Attributes
CollatingOrder
Type
Name
OrdinalPosition
Size
SourceField
SourceTable
ValidateOnSet
DataUpdatable
ForeignName
DefaultValue
ValidationRule
ValidationText
Required
AllowZeroLength
AppendOnly
FieldSize
OriginalValue
VisibleValue
ColumnWidth
ColumnOrder
ColumnHidden


"Gilbert" news:
Bonjour,

Je n'ai pas 2007 sous la main pour tester mais voici une idée:

Si tu connais le nom de la propriété tu peux faire (a condition que la
propriété ne soit pas en lecture seule)
Dim Tbl As DAO.TableDef
Dim Fld As DAO.Field
Dim Db As DAO.Database
Dim Prop As DAO.Property

Set Db = CurrentDb
Set Tbl = Db.TableDefs(NomDeLaTable) 'Pour une seule table
Set fld=tbl.Fields("LeNomDuChamp")
fld.Properties("LeNomDeLaPropriété").Value= LaValeurEnTexte ou
LaValeurEnNumerique
Ce devrait être quelque chose comme
fld.Properties("TextFormat").Value= "RichText"


Si tu ne connais pas le nom de la propriété, voici une procédure qui te
permet de lister les propriétés d'un champ.


Sub ListeProprietesChamps()
On Error Resume Next

Dim Tbl As DAO.TableDef
Dim Fld As DAO.Field
Dim Db As DAO.Database
Dim Prop As DAO.Property

Set Db = CurrentDb
Set Tbl = Db.TableDefs(NomDeLaTable) 'Pour une seule table
'For Each Tbl In Db.TableDefs 'Boucle sur toutes les tables
For Each Fld In Tbl.Fields
Debug.Print "====================================="
Debug.Print Fld.Name
For Each Prop In Fld.Properties
Debug.Print "------------------------"
Debug.Print "Nom", Prop.Name
Debug.Print "Type", Prop.Type
Debug.Print "Valeur", Prop.Value
Next
Next
Set Tbl = Nothing
Set Fld = Nothing
Set Db = Nothing
End Sub


--
Cordialement,

Gilbert


"CErnst" news:%
Bonjour et Bonne Année...

dans le cadre du passage d'une application Access 2003 vers 2007, qui
sait
comment modifier par programme un champ mémo d'une table afin de passer
la
propriété "Format du texte" de "Texte Brut" à "Texte Enrichi " ? Je n'ai


pas
trouvé beaucoup d'aide dans l'Aide...














CErnst
Le #18322481
Suite à ta réponse j'ai vérifié, c'est bien une base acc2007
Mais j'ai trouvé. Le problème est plus subtil : c'est une base acc2003
convertie. et dans ce cas, la propriété n'existe pas.
C'est seulement si je mets cette propriété sur texte enrichi en modification
de table qu'elle existe.

Il faut donc procéder de la sorte par programme : si la propriété n'existe
pas, d'abord la créer...

Merci pour le coup de main

"Gilbert" %23OhnuV%
Bonjour,

As-tu exécuté la procédure sur la base au format 2007?

J'ai fait le test sur 2007.
J'ai bien une propriété qui s'appelle TextFormat qui est égale à
0 (acTextFormatPlain) si Texte brut
1 (acTextFormatHTMLRichText) si Texte enrichi

--
Cordialement,

Gilbert


"CErnst" news:
Merci beaucoup, mais le problème est qu'elle n'apparaît pas dans les
propriétés......
Ci-dessous la liste des propriétés d'un champ mémo

Value
Attributes
CollatingOrder
Type
Name
OrdinalPosition
Size
SourceField
SourceTable
ValidateOnSet
DataUpdatable
ForeignName
DefaultValue
ValidationRule
ValidationText
Required
AllowZeroLength
AppendOnly
FieldSize
OriginalValue
VisibleValue
ColumnWidth
ColumnOrder
ColumnHidden


"Gilbert" news:
Bonjour,

Je n'ai pas 2007 sous la main pour tester mais voici une idée:

Si tu connais le nom de la propriété tu peux faire (a condition que la
propriété ne soit pas en lecture seule)
Dim Tbl As DAO.TableDef
Dim Fld As DAO.Field
Dim Db As DAO.Database
Dim Prop As DAO.Property

Set Db = CurrentDb
Set Tbl = Db.TableDefs(NomDeLaTable) 'Pour une seule table
Set fld=tbl.Fields("LeNomDuChamp")
fld.Properties("LeNomDeLaPropriété").Value= LaValeurEnTexte ou
LaValeurEnNumerique
Ce devrait être quelque chose comme
fld.Properties("TextFormat").Value= "RichText"


Si tu ne connais pas le nom de la propriété, voici une procédure qui te
permet de lister les propriétés d'un champ.


Sub ListeProprietesChamps()
On Error Resume Next

Dim Tbl As DAO.TableDef
Dim Fld As DAO.Field
Dim Db As DAO.Database
Dim Prop As DAO.Property

Set Db = CurrentDb
Set Tbl = Db.TableDefs(NomDeLaTable) 'Pour une seule table
'For Each Tbl In Db.TableDefs 'Boucle sur toutes les tables
For Each Fld In Tbl.Fields
Debug.Print "====================================="
Debug.Print Fld.Name
For Each Prop In Fld.Properties
Debug.Print "------------------------"
Debug.Print "Nom", Prop.Name
Debug.Print "Type", Prop.Type
Debug.Print "Valeur", Prop.Value
Next
Next
Set Tbl = Nothing
Set Fld = Nothing
Set Db = Nothing
End Sub


--
Cordialement,

Gilbert


"CErnst" news:%
Bonjour et Bonne Année...

dans le cadre du passage d'une application Access 2003 vers 2007, qui
sait
comment modifier par programme un champ mémo d'une table afin de passer
la
propriété "Format du texte" de "Texte Brut" à "Texte Enrichi " ? Je
n'ai


pas
trouvé beaucoup d'aide dans l'Aide...


















Publicité
Poster une réponse
Anonyme