En Access 97, la función de MsgBox tenía una sintáxis documentada para crear cajas de mensajes formateadas mediante el uso del signo @, y utilizaría el asistente de office si este estuviese activado. Por ejemplo, puedes usar lo siguiente (de la ayuda de Access 97):
MsgBox "¡Botón incorrecto!@Este botón no funciona.@Trata otro.", ", _
vbOKOnly + vbExclamation
En Access 2000 (el cual integra VBE, el Editor de Visual Basic), la función MsgBox VBA no llama nuevamente a Access para hacer este trabajo, así es que pierdes cajas de mensaje formateadas y también pierdes la habilidad de tener el "frente" del asistente de Office para tus mensajes. ¡Pero se puede trabajar alrededor de esto!
Mediante el uso de la función Eval, tu llamada irá a través del Servicio de Expresión (Expression Service) que intefaza con Access y Jet para correr la función de MsgBox, y la llamada irá a la versión de Access en lugar de la versión VBA. Así es que puedes agregar lo siguiente a tu base de datos de Access y llámala en lugar del MsgBox de VBA para obtener la funcionalida del 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
Aqui está la diferencia. Te dejo decidir cual te gusta más:
|
MsgBox ""¡Botón incorrecto!@Este botón no sirve.@Trata Otro.",
vbOKOnly + vbExclamation, "My Application"
|
|
FormattedMsgBox ""¡Botón incorrecto!@Este botón no sirve.@Trata Otro.",
vbOKOnly + vbExclamation, "My Application"
|