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 Database
    Option Explicit
    
    Sub FormatMessage()
        Dim strMsgText As String
        strMsgText = "Extremely Important@This is an invalid operation.@" & _
                     "Refer to online help."
        MsgBox strMsgText
    End Sub
    					
  5. 在立即窗口中运行此过程。
注意该消息包含原义字符串"非常 Important@This 是一个无效 operation.@Refer 联机帮助"在 Microsoft Access 95 和 97 中,此邮件被设置成与文本的三个单独段落"非常重要"在粗体,类似于以下内容:
非常重要

这是无效操作。

请参阅联机帮助。

属性

文章编号: 242889 - 最后修改: 2013年10月22日 - 修订: 3.0
这篇文章中的信息适用于:
  • Microsoft Access 2000 标准版
关键字:?
kbnosurvey kbarchive kbmt kbprb KB242889 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 242889
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com