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

Traduções deste artigo Traduções deste artigo
ID do artigo: 242889 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Moderado: Requer básica de macro, codificação e interoperabilidade habilidades.

Este artigo se aplica a um banco de dados do Microsoft Access (.mdb) e para um projeto Microsoft Access (.adp).

Expandir tudo | Recolher tudo

Neste artigo

Sintomas

No Microsoft Access 2000, o sinal de arroba (@) não oferece formatação especial quando você utiliza com a função MsgBox .

Causa

A função MsgBox fornecida pelo Microsoft Visual Basic Editor (Vbe6.dll) não dá suporte a formatação fornecida pelo sinal de arroba (@).

Resolução

Há duas soluções possíveis. Uma solução é usar a ação CaixaDeMensagem em uma macro. Outra solução é escrever uma função definida pelo usuário que usa a função Eval para chamar a função MsgBox .

Criar uma macro que usa a ação CaixaDeMensagem

  1. Na janela banco de dados, clique em macros sob objetos e, em seguida, clique em novo .
  2. Na janela Macro, clique na seta em ação e, em seguida, clique em MsgBox na lista de ação .
  3. Pressione F6 para mover o ponteiro para a caixa de mensagem em Argumentos da ação .
  4. Digite a seguinte mensagem na caixa de mensagem :
    Botão errado!@Este botão não funciona.@Tente outro.
  5. No menu arquivo , clique em Salvar como e, em seguida, clique em OK para salvar a macro com o nome padrão.
  6. No menu Executar , clique em Executar . Observe que a primeira linha da mensagem está em negrito.

Criar a função FormattedMsgBox

A função Eval força o Visual Basic for Applications expressão serviço para avaliar a função MsgBox separadamente do Editor do Visual Basic e, portanto, é possível aproveitar no sinal de formatação. O exemplo a seguir usa uma função definida pelo usuário chamada FormattedMsgBox em vez da função MsgBox . Para criar a função FormattedMsgBox, execute essas etapas:
  1. Inicie o Microsoft Access.
  2. Abra o banco de dados de exemplo Northwind.mdb.
  3. Crie um novo módulo.
  4. Adicione o procedimento a seguir 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. Salve o módulo usando o nome padrão que aparece na caixa Nome do módulo .
  6. Quando você deseja usar a formatação especial fornecida pelo sinal de arroba, chamar a função FormattedMsgBox em vez da função MsgBox interna. 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ções

Em versões anteriores do Microsoft Access, você pode usar o sinal para partes do formato do texto da mensagem em uma função MsgBox . Quando você usa dois em sinais no texto da função MsgBox , o texto delimitado pelo sinal de arroba é separado em três parágrafos na caixa de mensagem, com o primeiro parágrafo em negrito.

Essa funcionalidade é fornecida pelo Visual Basic para biblioteca de aplicativos (Vba332.dll) no Microsoft Access 97. Com a integração do Editor do Visual Basic da Microsoft, Microsoft Access 2000 não implementa Vba332.dll.

Etapas para reproduzir o problema

  1. Inicie o Microsoft Access.
  2. Abra o banco de dados de exemplo Northwind.mdb.
  3. Crie um novo módulo.
  4. Adicione o seguinte código para o 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 Verificação imediata.
Observe que a mensagem contém a seqüência literal "extremamente Important@This é um operation.@Refer inválido a Ajuda on-line." No Microsoft Access 95 e 97, esta mensagem está formatada em três parágrafos separados com o texto "Extremamente importante" em negrito, semelhante à seguinte:
extremamente importante

Esta é uma operação inválida.

Consulte a Ajuda on-line.

Propriedades

ID do artigo: 242889 - Última revisão: terça-feira, 22 de outubro de 2013 - 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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 242889

Submeter comentários

 

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