ACC2000: MsgBox 函数忽略 At 符号 (@) 格式

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

242889
本文已归档。它按“原样”提供,并且不再更新。
中等: 要求基本的宏、 编码,和互操作技能。

本文适用于 Microsoft Access 数据库 (.mdb) 和 Microsoft Access 项目 (.adp)。

症状
在 Microsoft Access 2000 中,在 at 符号 (@),不提供特殊的格式时使用 MsgBox 函数。
原因
提供通过 Microsoft Visual Basic 编辑器 (Vbe6.dll) 将 MsgBox 函数不支持由提供该格式在 at 符号 (@)。
解决方案
有两个可能的解决方案。一种解决方案是在宏中使用 MsgBox 操作。其他解决方法是编写一个用户定义函数的调用将 MsgBox 函数中使用 Eval 函数。

创建一个宏来使用 MsgBox 操作

  1. 在数据库窗口中单击 对象,下的 ,然后单击 新建
  2. 在宏窗口中单击在 操作,下的箭头,然后单击在 操作 列表中的 Msgbox
  3. 按 F6 可将指针移动到 消息 框中在 操作参数 下。
  4. 消息 框中键入以下消息:
    错误 button!@This 按钮不会 work.@Try 另一个。
  5. 文件 菜单上单击 另存为,然后单击 确定 以保存该宏使用默认名称。
  6. 运行 菜单上单击 $ 运行。请注意该邮件的第一行是加粗格式。

创建 FormattedMsgBox 函数

Eval 函数强制 vba 的应用程序表达式服务来计算 MsgBox 函数分别从 Visual Basic 编辑器,并因此有可能利用在符号格式。下面的示例使用 MsgBox 函数代替命名 FormattedMsgBox 的用户定义函数。若要进行 FormattedMsgBox 函数,请按照下列步骤操作:
  1. 启动 Microsoft Access。
  2. 打开示例数据库 Northwind.mdb。
  3. 创建一个新的模块。
  4. 将下面的过程添加到该模块:
    Function FormattedMsgBox(Prompt As String, _                         Optional Buttons As VbMsgBoxStyle = vbOKOnly, _                         Optional Title As String = "Microsoft Access", _                         Optional HelpFile As Variant, _                         Optional Context As Variant) As VbMsgBoxResult    Dim strMsg As String    If IsMissing(HelpFile) Or IsMissing(Context) Then       strMsg = "MsgBox(" & Chr(34) & Prompt & Chr(34) & ", " & Buttons & _                 ", " & Chr(34) & Title & Chr(34) & ")"    Else       strMsg = "MsgBox(" & Chr(34) & Prompt & Chr(34) & ", " & Buttons & _                 ", " & Chr(34) & Title & Chr(34) & ", " & Chr(34) & _                      HelpFile & Chr(34) & ", " & Context & ")"    End If    FormattedMsgBox = Eval(strMsg)End Function					
  5. 保存通过使用默认的名称出现在 模块名称 框中的模块。
  6. 当您要使用所提供的特殊格式在 at 符号,调用 FormattedMsgBox 函数代替内置 MsgBox 函数。例如:
    Sub TestMsgBox()    Dim lngResult As Long    lngResult = FormattedMsgBox("Extremely Important@This is an invalid operation.@Refer to online help.", _        vbCritical + vbOkOnly, "Microsoft Access")End Sub					
更多信息
在早期版本的 Microsoft Access 中,您可以使用该格式部分的消息文本 MsgBox 函数中的符号。通过将 MsgBox 函数的文本中使用两个 at 符号时, 分隔文本在 at 符号分隔到三个消息框中以粗体文本第一段的段落。

此功能由 Visual Basic 提供在 Microsoft Access 97 中的应用程序库 (Vba332.dll)。通过集成的 Microsoft Visual Basic 编辑器中,Microsoft Access 2000 不能再实现 Vba332.dll。

重现行为的步骤

  1. 启动 Microsoft Access。
  2. 打开示例数据库 Northwind.mdb。
  3. 创建一个新的模块。
  4. 将下面的代码添加到该模块:
    Option Compare DatabaseOption ExplicitSub FormatMessage()    Dim strMsgText As String    strMsgText = "Extremely Important@This is an invalid operation.@" & _                 "Refer to online help."    MsgBox strMsgTextEnd Sub					
  5. 在立即窗口中运行此过程。
注意该消息包含原义字符串"非常 Important@This 是一个无效 operation.@Refer 联机帮助"在 Microsoft Access 95 和 97 中,此邮件被设置成与文本的三个单独段落"非常重要"在粗体,类似于以下内容:
非常重要

这是无效操作。

请参阅联机帮助。
prb

警告: 本文已自动翻译

属性

文章 ID:242889 - 上次审阅时间:10/22/2013 01:08:44 - 修订版本: 3.0

  • Microsoft Access 2000 标准版
  • kbnosurvey kbarchive kbmt kbprb KB242889 KbMtzh
反馈