ACC2000: Função CxMsg ignora no sinal (@) a formatação

Traduções de Artigos Traduções de Artigos
Artigo: 242889 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Moderado: Requer básica macros, codificação e interoperabilidade competências.

Este artigo aplica-se a uma base de dados do Microsoft Access (.mdb) e a um projecto do Microsoft Access (.adp).

Expandir tudo | Reduzir tudo

Nesta página

Sintomas

No Microsoft Access 2000, a arroba (@) não fornece uma formatação especial quando utilizado com a função CxMsg .

Causa

A função CxMsg fornecida pelo Editor do Microsoft Visual Basic (Vbe6.dll) não suporta a formatação fornecida pela arroba (@).

Resolução

Existem duas soluções possíveis. Uma solução é utilizar a acção CxMsg numa macro. A solução consiste em escrever uma função definida pelo utilizador que utiliza a função eval para chamar a função CxMsg .

Criar uma macro que utiliza a acção CxMsg

  1. Na janela Base de dados, clique em macros em objectos e, em seguida, clique em Novo .
  2. Na janela ' Macro ', clique na seta em acção e, em seguida, clique em MsgBox na lista .
  3. Prima F6 para mover o ponteiro para a caixa de mensagem em Argumentos de acção .
  4. Escreva a seguinte mensagem na caixa de mensagem :
    Button!@This errado botão não funciona.@Experimente outro.
  5. No menu ficheiro , clique em Guardar como e, em seguida, clique em OK para guardar a macro com o nome predefinido.
  6. No menu Run , clique em Executar . Note que a primeira linha da mensagem é negrito.

Criar a função FormattedMsgBox

A função eval força o Visual Basic for Applications serviço de expressão para avaliar a função CxMsg separadamente a partir do Visual Basic e, por isso, é possível tirar partido no sinal de formatação. O exemplo seguinte utiliza uma função definida pelo utilizador chamada FormattedMsgBox em vez da função CxMsg . Para criar a função FormattedMsgBox, siga estes passos:
  1. Inicie o Microsoft Access.
  2. Abra a base de dados exemplo Adamastor.mdb.
  3. Crie um novo módulo.
  4. Adicione o seguinte procedimento ao módulo:
    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. Guarde o módulo utilizando o nome predefinido que aparece na caixa Nome do módulo .
  6. Se pretender utilizar a formatação especial fornecida pela arroba, chamar a função FormattedMsgBox em vez da função CxMsg incorporada. Por exemplo:
    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
    					

Mais Informação

Em versões anteriores do Microsoft Access, pode utilizar a arroba para formato partes o texto da mensagem numa função CxMsg . Quando utiliza dois em sinais no texto da função CxMsg , o texto delimitado pela arroba está dividida em três parágrafos na caixa de mensagem, com o primeiro parágrafo com texto a negrito.

Esta funcionalidade é fornecida pelo Visual Basic para aplicações de biblioteca (Vba332.dll) no Microsoft Access 97. Com a integração do Microsoft Visual Basic Editor, o Microsoft Access 2000 já não implementa Vba332.dll.

Passos para reproduzir o comportamento

  1. Inicie o Microsoft Access.
  2. Abra a base de dados exemplo Adamastor.mdb.
  3. Crie um novo módulo.
  4. Adicione o seguinte código ao módulo:
    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. Execute este procedimento na janela imediata.
Nota a mensagem contém a cadeia literal "extremamente Important@This é um operation.@refer inválido a ajuda online." No Microsoft Access 95 e 97, esta mensagem está formatada para três parágrafos separados com o texto "Extremamente importantes" em negrito, semelhante à seguinte:
muito importante

Esta é uma operação inválida.

Consulte a ajuda online.

Propriedades

Artigo: 242889 - Última revisão: 10 de fevereiro de 2014 - Revisão: 3.0
A informação contida neste artigo aplica-se a:
  • Microsoft Access 2000 Standard Edition
Palavras-chave: 
kbnosurvey kbarchive kbmt kbprb KB242889 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 242889

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