Numéro d'article: 290657 - Dernière mise à jour: jeudi 23 novembre 2006 - Version: 3.2

Utilisation des définitions des formulaires et des formulaires One-Off dans Outlook 2002

Ancien nº de publication de cet article : F290657
Cet article peut contenir des liens vers des informations en langue anglaise (pas encore traduites).
Pour vous procurer une version Microsoft Outlook 97 de cet article, reportez-vous à l'article 176567  (http://support.microsoft.com/kb/176567/ ) .
Pour vous procurer une version Microsoft Outlook 98 de cet article, reportez-vous à l'article 181266  (http://support.microsoft.com/kb/181266/ ) .
Pour vous procurer une version Microsoft Outlook 2000 de cet article, reportez-vous à l'article 207896  (http://support.microsoft.com/kb/207896/ ) .

Sommaire

Agrandir tout | Réduire tout

Résumé

Cet article décrit le mode d'implémentation des formulaires personnalisés dans Outlook et fournit des conseils pour résoudre les problèmes inattendus que vous pouvez rencontrer lors de la création d'une solution basée sur des formulaires Outlook.

Plus d'informations

REMARQUE : Il sera important, tout au long de cet article, de bien faire la distinction entre les termes « éléments » et « formulaires ». Un élément correspond à un « enregistrement » d'informations (un groupe de champs) dans un dossier. Un formulaire représente fondamentalement « l'interface utilisateur » associée à l'élément et ne contient généralement aucune donnée. Il est publié dans un dossier ou une bibliothèque de formulaires pour être utilisé avec les éléments du dossier.

Lors de la création de solutions de formulaires personnalisés dans Outlook, il est important d'être en mesure de déterminer la façon dont Outlook utilise votre formulaire personnalisé en fonction des éléments d'un dossier.

Solution de formulaires personnalisés « type »

Si vous souhaitez créer un formulaire de contact personnalisé pour remplacer le formulaire de contact Outlook par défaut, vous procédez généralement comme suit :
    • Commencez par utiliser un nouveau formulaire de contact par défaut en tant que base de votre formulaire personnalisé.
    • Personnalisez le formulaire selon vos besoins.
    • Publiez le formulaire dans le dossier Contacts.
    • Définissez le formulaire en tant que formulaire par défaut pour le dossier Contacts en modifiant les propriétés du dossier.
Chaque élément Outlook dispose d'un champ Classe du message type qui lui permet d'identifier le formulaire qu'il convient d'utiliser pour afficher l'élément. La classe du message par défaut d'un contact est IPM.Contact et, si vous publiez le formulaire, la classe du message est modifiée pour prendre en compte le nom du formulaire publié. En conséquence, si vous avez nommé le formulaire MonFormulaire au cours de la publication lors des étapes précédentes, le nom de la classe du message devient IPM.Contact.MonFormulaire. Lorsque vous créez un élément basé sur le formulaire publié, le champ Classe du message de l'élément a la valeur IPM.Contact.MonFormulaire. Pour plus d'informations sur l'utilisation des classes du message, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
290659  (http://support.microsoft.com/kb/290659/ ) OL2002 : Comment faire pour mettre à jour des éléments existants pour utiliser un nouveau formulaire personnalisé

Formulaires One-Off

Dans le scénario type décrit ci-dessus, les informations relatives au formulaire (la définition du formulaire) ne sont pas enregistrées avec chacun des éléments. Le formulaire est au fond « lié » à l'élément par le champ Classe du message. La taille d'un élément type peut atteindre 300 ou 500 octets.

REMARQUE : pour simplifier, cet article utilisera le terme « formulaire lié » pour indiquer une situation dans laquelle la définition du formulaire n'est pas enregistrée dans un élément et le champ Classe du message est défini pour utiliser un formulaire personnalisé.

Il est cependant possible d'enregistrer la définition du formulaire avec un élément particulier. Lorsque la définition d'un formulaire personnalisé est enregistrée dans un élément, celui-ci est alors marqué comme étant « basé sur un formulaire One-Off » ou simplement « One-Off ».

Un formulaire qui devient One-Off utilisera la définition de formulaire enregistrée avec l'élément à la place du formulaire publié. Si vous enregistrez une définition de formulaire avec un élément, la Classe du message de l'élément redevient la classe du message par défaut pour ce type de formulaire (par exemple, IPM.Contact).

Formulaires devenant des formulaires One-Off de façon standard

Vous pouvez préciser qu'il s'agit d'un formulaire One-Off en activant la case à cocher Envoyer la définition de formulaire avec l'élément, dans la page Propriétés du formulaire en mode Création. Suivez cette méthode lorsque le formulaire ne se trouve pas dans une bibliothèque de formulaires à laquelle le destinataire a accès. La sélection de cette option vous garantit que la personne affichera le formulaire personnalisé à l'ouverture de l'élément.

Éléments basés sur un formulaire One-Off de façon inattendue

Imaginons le scénario dans lequel vous avez des formulaires liés et 10 éléments déjà créés qui utilisent votre formulaire personnalisé publié. Si vous ouvrez l'un de ces éléments et que la définition du formulaire est modifiée pour cet élément particulier, Outlook va automatiquement créer un formulaire One-Off de cet élément et enregistrer la définition de formulaire avec cet élément. La classe du message par défaut est rétablie pour le champ Classe du message pour ce type d'élément et la taille de l'élément augmente de façon notable.

Voici quelques scénarios connus dans lesquels un formulaire One-Off peut être créé pour un élément de façon inattendue.

  • Il s'agit d'un scénario type dans lequel vous avez des formulaires liés : vous ouvrez un élément existant d'un dossier, apportez des modifications au formulaire en mode Création avant d'enregistrer ou d'envoyer l'élément.

    Si vous souhaitez modifier le formulaire pour tous les éléments du dossier au lieu d'ouvrir un élément existant, procédez comme suit :

    1. Ouvrez un nouvel élément basé sur votre formulaire personnalisé.
    2. Apportez des modifications en mode Création à cet élément.
    3. À l'aide de cet élément, publiez à nouveau le formulaire sous le même nom.
    4. Fermez l'élément sans enregistrer les modifications apportées.
    Tous les éléments du dossier utiliseront le formulaire personnalisé mis à jour la prochaine fois que vous les ouvrirez, car la Classe du message fait toujours référence au même formulaire publié. La première fois que vous ouvrez un élément après avoir modifié le formulaire, Outlook affiche brièvement un message pour indiquer que le nouveau formulaire est en cours d'installation (copié dans le cache des formulaires).
  • Vous avez utilisé le code VBScript (Microsoft Visual Basic Scripting Edition) dans le formulaire personnalisé et certaines méthodes ou commandes qui provoquent des modifications de la définition du formulaire de l'élément. Les méthodes suivantes provoquent le plus fréquemment ce comportement :
    • Méthodes existant pour l'objet FormDescription.
    • Méthodes relatives aux propriétés des contrôles, généralement pour activer/désactiver des contrôles ou pour les masquer/afficher. Ceci se produira lors du paramétrage des propriétés des contrôles suivantes : PossibleValues, ItemProperty et LayoutFlags. Ceci ne se produira pas avec la propriété ReadOnly.
    • Méthodes associées à l'objet Action.
  • Vous avez créé un champ pour le dossier, mais celui-ci n'existait pas dans l'élément au moment de la publication du formulaire. Dans ce cas, si vous créez un élément basé sur le formulaire personnalisé et utilisez la fonction Modification directe d'Outlook pour entrer une valeur dans un élément d'une vue de table, Outlook ajoute automatiquement le champ défini par l'utilisateur à l'élément à la volée. Cela se traduit par la modification de la définition du formulaire et l'élément est donc marqué comme étant basé sur un formulaire One-Off.Pour plus d'informations sur l'utilisation de champs définis par l'utilisateur dans les solutions, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
    290656  (http://support.microsoft.com/kb/290656/ ) OL2002 : Utilisation de champs définis par l'utilisateur dans des solutions

Problèmes généralement rencontrés

Bien que les solutions comme les situations soient très variables, il existe certains signes qui peuvent vous avertir que des formulaires deviennent One-Off.
  • Le code VBScript d'un formulaire n'est plus exécuté. Ceci s'explique par le fait que, par défaut, Outlook n'exécute pas de code VBScript dans des formulaires One-Off. Il s'agit de l'une des nouvelles fonctionnalités de sécurité relatives à la messagerie d'Outlook 2002.Pour plus d'informations sur cette restriction relative à la sécurité, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
    290500  (http://support.microsoft.com/kb/290500/ ) OL2002 : Description destinée aux développeurs concernant les fonctionnalités de sécurité de la messagerie électronique dans Outlook 2002
  • Un message d'avertissement relatif à une alerte macro s'affiche subitement lorsque vous ouvrez un élément. Les formulaires One-Off provoquent très souvent l'apparition du message d'avertissement d'activation/de désactivation de l'alerte macro affiché par Outlook lorsqu'un formulaire contient un code VBScript. Le code n'étant pas dans un formulaire publié ou approuvé, mais dans l'élément lui-même, Outlook affichera toujours le message d'avertissement. En premier lieu, l'idéal est d'essayer de ne pas utiliser le scénario qui provoque la création d'un formulaire One-Off. Pour plus d'informations sur le message d'avertissement relatif à la sécurité, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances de Microsoft.
    290663  (http://support.microsoft.com/kb/290663/ ) Outlook n'exécute pas le code VBScript lorsque vous ouvrez un élément
  • La taille d'un élément augmente de façon inattendue.

  • L'icône associée à un élément change subitement, ce qui indique habituellement une modification intervenue dans le champ de la classe du message.

Identification d'un élément basé sur un formulaire One-Off

Si un élément est, de façon inattendue, basé sur un formulaire One-Off et que vous remarquez que la case à cocher Envoyer la définition du formulaire avec l'élément est désactivée, cela ne signifie pas nécessairement que la définition de formulaire n'est pas enregistrée avec l'élément.

Un élément devient One-Off si son champ Classe du message correspond à la classe du message par défaut de ce type d'élément mais, lorsque vous ouvrez l'élément, le formulaire utilisé pour l'afficher est un formulaire personnalisé.

Lorsque vous développez une solution basée sur un dossier, vous pouvez afficher les champs Classe du message et Taille dans une vue de table pour vous assurer que le comportement des éléments du dossier est normal. Par ailleurs, un changement de l'icône d'un élément indique souvent une modification de son état, mais vous devez redémarrer Outlook pour vous assurer que l'icône appropriée s'affiche.

Procédure pour reproduire le problème

Microsoft fournit des exemples de programmation à des fins d'illustration uniquement, sans garantie explicite ou implicite, y compris, de manière non limitative, les garanties implicites de qualité marchande et/ou d'adéquation à un usage particulier. Cet article suppose que vous connaissez le langage de programmation présenté et les outils utilisés pour créer et déboguer des procédures. Les techniciens du Support technique Microsoft peuvent vous expliquer les fonctionnalités d'une procédure particulière, mais ils ne peuvent pas modifier les exemples en vue de vous fournir des fonctionnalités supplémentaires ou de créer des procédures répondant à vos besoins spécifiques. Si vous ne maîtrisez que partiellement la programmation, vous pouvez contacter un partenaire certifié Microsoft (Microsoft Certified Partner) ou le service client Microsoft au 0825 827 829 qui pourra transmettre votre demande de consulting aux équipes Microsoft appropriées. Pour plus d'informations sur les partenaires certifiés Microsoft, reportez-vous au site Web de Microsoft à l'adresse suivante :
https://partner.microsoft.com/global/30000104 (https://partner.microsoft.com/global/30000104)
Pour plus d'informations sur les options de support technique disponibles et la façon de contacter Microsoft, reportez-vous au site Web de Microsoft à l'adresse suivante :
http://support.microsoft.com/default.aspx?scid=fh;FR;ASSISTEDOVER (http://support.microsoft.com/default.aspx?scid=fh;fr;assistedover)
Les étapes suivantes illustrent la façon dont l'ajout d'un champ défini par l'utilisateur à un élément peut créer un formulaire One-Off.
  1. Ouvrez un nouveau message électronique.
  2. Dans le menu Outils, cliquez sur Formulaires, puis sur Créer ce formulaire.
  3. Utilisez les Boîtes de commandes pour ajouter un Bouton de commande à la page P.2.
  4. Dans le menu Formulaire, cliquez sur Afficher le code. Ajoutez le code VBScript suivant dans l'Éditeur VBScript, puis fermez-le :
    <![CDATA[
    Sub CommandButton1_click()
       ' Ceci modifie la définition du formulaire par l'ajout d'un champ texte.
       Set MyProp = Item.UserProperties.Add("MyField",1)
       ' Envoie l'élément
       Item.Send
    End Sub
    					]]>
  5. Dans le menu Outils, cliquez sur Publier le formulaire en tant que, puis publiez-le dans la Boîte de réception sous le nom « Formulaire1 ».
  6. Lorsque le système vous invite à activer l'option Envoyer la définition de formulaire avec l'élément, cliquez sur Non. Fermez le formulaire sans enregistrer les modifications apportées.
  7. Dans le menu Actions, cliquez sur Nouveau Formulaire1 pour ouvrir un élément basé sur le formulaire.
  8. Adressez-le à vous-même.
  9. Servez-vous du Bouton de commande sur P.2 pour envoyer le message.
  10. À la réception du message, ouvrez-le pour le lire.
Notez que le message d'avertissement de l'alerte macro s'affiche. Par ailleurs, la taille de l'élément est relativement importante (environ 6 Ko).

Contournement

Si vous avez besoin d'un scénario dans lequel un élément sera basé sur un formulaire One-Off, vous pouvez contourner les effets secondaires d'un tel élément en redéfinissant le champ de la classe du message avant d'enregistrer l'élément dans le code. Par exemple, utilisez le code suivant au lieu de celui précédemment donné dans la section « Étapes pour reproduire le problème » et l'élément n'activera pas le message d'avertissement de l'alerte macro.
<![CDATA[
Sub CommandButton1_click()
   ' Enregistre la propriété MessageClass
   sSaveMessageClass = Item.MessageClass

   ' Ceci modifie la définition du formulaire
   Set MyProp = Item.Userproperties.Add("MyField", 1)

   ' Rétablit la propriété MessageClass
   Item.MessageClass = sSaveMessageClass

   ' Enregistre les modifications apportées au formulaire
   Item.Save

   ' Envoie l'élément
   Item.Send

End Sub
				]]>
REMARQUE : si vous modifiez par programmation la classe du message d'un élément, la taille de l'élément ne sera pas réduite. Il n'existe aucun moyen de supprimer réellement la définition de formulaire non souhaitée d'un élément autrement que par la création d'un élément sans la définition de formulaire et la copie des données de l'ancien élément dans le nouveau.

Références

Pour plus d'informations sur les ressources disponibles et les réponses aux questions les plus fréquemment posées sur les solutions Microsoft Outlook, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
287530  (http://support.microsoft.com/kb/287530/ ) OL2002 : Questions sur les formulaires personnalisés et les solutions Microsoft Outlook

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Outlook 2002 Standard
Mots-clés : 
kbforms kbvba kbinfo KB290657
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
 

Traductions disponibles

 

Related Support Centers