I. Les champs Mémo au Format Texte Enrichi

I-A. Avec sa nouvelle version d'Access, Microsoft offre à l'utilisateur la possibilité d'utiliser le format texte enrichi dans les champs mémo.

Pour rappel, les champs mémo sont des champs qui permettent le stockage de texte de plus de 255 caractères. Dans les versions précédentes d'Access, ces champs contenaient du texte brut. Avec la version 12 d'Access, il est maintenant possible d'enrichir l'affichage du texte dans les champs mémo.

Cette fonctionnalité rend plus intéressante et attrayante l'utilisation de champs mémo. Les champs mémo ont perdu leur limitation en ce qui concerne l'indexation en effet, un champ mémo peut être indexé sur la dernière version d'Access. On peut même indexer ces champs avec ou sans doublons

Toutefois, les champs mémo sont devenus plus gourmands en espace disque avec le stockage du texte en code Unicode.

I-B. Le HTML

Le HTML est un format de texte enrichi développé pour le WEB. Son utilisation facilitée et agrémente la lecture des pages WEB.

I-C. Comment insérer un champ mémo dans une table et permettre l'utilisation du HTML

I-C-1. Table en mode création

Access permet la création de tables de deux façons différentes et il est possible d'utiliser ces deux méthodes pour créer un champ mémo au format texte enrichi.

Image non disponible

Dans la colonne type de donnée, il suffit d'utiliser le menu déroulant pour y choisir le Type mémo.

A ce stade, c'est un champ mémo simple sans enrichissement de texte. Pour activer l'enrichissement du texte il faut aller dans les propriétés du champ.

Les propriétés sont accessibles dans le volet inférieur ou latéral.

Image non disponible

Avant modification de la propriété, la valeur par défaut est texte brut. Toujours suivant le même principe, on peut modifier cette valeur par un menu déroulant et choisir Texte enrichi.

Image non disponible

Dans la même fenêtre, on remarque aussi que les propriétés Indexé « Oui avec doublons », « Sans doublon » sont également possibles. Son utilité restant à démontrer vu la grande quantité de caractères.

Une autre façon de procéder est d'aller en mode feuille de données et d'utiliser la barre d'outils pour afficher les types de champs disponibles.

Image non disponible

Ajouter un nouveau champ.

Image non disponible


Image non disponible

La flèche indique le départ et l'arrivée du glisser déposer.

Image non disponible

Nous obtenons en résultat un nouveau champ de type texte enrichi.

Mais on ne profite pleinement de cette fonctionnalité de texte enrichi que dans les formulaires et les états. Mais cette fonctionnalité reste disponible grâce à une barre d'outils flottante. Principe que l'on retrouve dans les autres applications de la suite bureautique.

Image non disponible

Cette barre d'outils possède tout ce qu''il faut pour enrichir le texte.

Les différentes options sont les attributs normaux, Gras, Italique, Souligné. Mais aussi la couleur de la police, la fonte, l'indentation, l'alignement du paragraphe, la possibilité d'utiliser des puces ou la numérotation.

I-C-2. Le HTML dans les formulaires

C'est dans les formulaires que l'on peut profiter au maximum de cette nouvelle fonctionnalité.

Image non disponible

C'est ici que l'on peut réellement mesurer l'avantage et la clarté du Texte Enrichi. On profite d'une interaction directe. Mais avant de se décourager, il faut quand même vérifier que le contrôle du formulaire autorise l'affichage du texte enrichi. C'est une vérification qui est principalement à faire lorsque l'on convertit du texte brut en texte enrichi alors que le formulaire existe déjà.

Image non disponible

I-C-3. Dans les états

Dans les états, on retrouve la même clarté. Ce qui était auparavant des textes insipides est devenu un peu plus agréable à lire, quoique qu'on puisse en penser un texte mémo est destiné à la lecture.

Image non disponible

La différence est directement visible.

I-C-4. Changement de type de texte dans un formulaire

Si l'on modifie le type de texte d'un champ mémo d'une table, l'affichage dans le formulaire n'est pas pour autant changé. Si cette option est activée lors de lacréation de la table, le formulaire affiche les données correctement. Si ce n'est pas le cas, on peut modifier le type d'affichage de la même manière que l'on modifie le champ dans la table

Image non disponible
Image non disponible

I-D. Autre nouveauté introduite avec les champs mémo : l'historique des modifications des données.

I-D-1. Comment activer cette option

La toute dernière ligne de la fenêtre de propriété du champ mémo contient le texte suivant : Ajouter uniquement.
Par défaut, cette option est sur non. C'est un peu paradoxal, mais pour bénéficier du suivi des modifications, il faut mettre la valeur à oui. Une fois cette valeur changée, toutes les modifications de données faites à ce champ seront enregistrées avec la date et l'heure de modification, ainsi que l'intégralité du texte.

Image non disponible

I-D-2. Comment obtenir la liste des modifications

On peut obtenir la liste des modifications apportées aux champs mémo de deux façons. La première est avec un clic droit tant au niveau d'un formulaire qu''au niveau de la table. Une boîte de dialogue apparaît avec la liste des modifications qui ont été apportées aux données.

Image non disponible
Clic droit


La seconde méthode est de faire appel à un peu de code pour récupérer l'historique des modifications.

Fonction Historique
Sélectionnez

'*******************************************************************************
' Cette fonction permet de récupérer dans un string l'enregistrement
' de toutes les modifications effectuées sur le champ mémo
'*******************************************************************************
Public Function AffichageHistorique(sttable As String, stfield As String, stquery As String)
Dim stTemp As String
AffichageHistorique = Application.ColumnHistory(sttable, stfield, stquery)
End Function

L'appel de cette fonction pourra se faire dans un formulaire. Lors de l'appel de la fonction, on passera des paramètres en valeur pour la méthode ColumnHistory. Ces arguments représentent le nom de la table, le nom du champ et l'identifiant de l'enregistrement.

Appel de la fonction
Sélectionnez

Private Sub cmd_Historique_Click()
Dim chg As String

chg = AffichageHistorique("tblMessage", "txtcorps", "idmess = " & Me.Idmess)

Me.lblResult = chg
MsgBox Len(chg)

End Sub

Pendant la rédaction de l'article, j'ai voulu par curiosité vérifier la longueur de chaîne du champ mémo présent dans la table. Il est apparus que les changements ne sont pas stockés dans le champ.

Les données sont structurées comme suit :

 
Sélectionnez

[Version : 4/03/2007 12:51:34 ] Corps de texte
Seconde ligne
Troisième ligne
Essai
[Version : 4/03/2007 12:52:42 ] Texte du message Texte en gras
[Version : 4/03/2007 12:54:44 ] Texte du message Texte en gras
Texte en Italique
Souligné
[Version : 4/03/2007 12:58:36 ] Texte du message Texte en gras
Texte en Italique
Souligné
 
 
 
 
[Version : 4/03/2007 13:00:14 ] Texte du message Texte en gras
Texte en Italique
Souligné

On remarque deux blocs distincts, l'un reprenant la date et l'heure de la modification, et le second, la valeur du champ avant modification.

I-E. Limites du format texte enrichi

Lors de l'exportation des Objets de la base de données contenant du HTML, le format n'est pas conservé. Ainsi, si l'on utilise l'export d'un état vers un document Word, on se retrouve dans Word avec un texte brut. La conversion a éliminé les balises Html. On obtient la même chose si on exporte un état vers une page HTML. La conversion ne tient pas compte du format.

Image non disponible

I-F. Conclusions

Avec ces fonctionnalités supplémentaires, Access devient un peu plus agréable à la lecture de long texte.

Il n'est désormais plus nécessaire de faire appel à des artifices pour obtenir une mise en forme correcte et agréable facilitant la lecture.

ondages Access 2007FAQ Access 2007Ma page