En Access 97, la fonction MsgBox possède une syntaxe documentée pour
créer des messages formatés en utilisant l'arabas, @ , et qui utilise
l'assistant d'Office, si ce dernier est actif. Par exemple, la ligne
Msgbox "Bold Line@Plain Line@Another Plain Line", _
vbInformation+vbOKOnly, _
"Formatting sample"
produit une première ligne en caractères gras.
Access 2000 (qui intègre VBE, le Visual Basic Editor), la fonction VBA
MsgBox n'appelle pas Access pour effectuer ce travail et on perd ainsi ces
fonctionnalités, mais il y a une façon de contourner le problème!
En utilisant la fonction Eval, l'appel utilise le Expression
Service qui s'interface avec Access et Jet pour desservir la fonction
MsgBox et ainsi, utilisera la version d'Access au lieu de la version de VBA.
On peut donc utiliser la fonction suivante pour récupérer les
fonctionnalités d'Access 97:
Function FormattedMsgBox( _
Prompt As String, _
Optional Buttons As VbMsgBoxStyle = vbOKOnly, _
Optional Title As String = vbNullString, _
Optional HelpFile As Variant, _
Optional Context As Variant) _
As VbMsgBoxResult
If IsMissing(HelpFile) Or IsMissing(Context) Then
FormattedMsgBox = Eval("MsgBox(""" & Prompt & _
""", " & Buttons & ", """ & Title & """)")
Else
FormattedMsgBox = Eval("MsgBox(""" & Prompt & _
""", " & Buttons & ", """ & Title & """, """ & _
HelpFile & """, " & Context & ")")
End If
End Function
Si votre application compte beaucoup sur la présentation du genre de celle
de Access 97, vous pouvez toujours fabriquer vos propres boîtes de dialogue,
en remplacement. Un tel exemple est fourni par Arvin Meyer.
|
Data
Strategies
(Repérer, dans la section Downloads, Custom
MsgBox Creator.) |