Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Question à programmeur pointu

4 réponses
Avatar
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...

4 réponses

Avatar
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" a écrit dans le message de
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...




Avatar
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" a écrit dans le message de 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" a écrit dans le message de
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...









Avatar
Gilbert
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" a écrit dans le message de 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" a écrit dans le message de
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" a écrit dans le message de
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...














Avatar
CErnst
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" a écrit dans le message de news:
%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" a écrit dans le message de
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" a écrit dans le message de
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" a écrit dans le message de
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...