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

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.

242889
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).

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 DatabaseOption ExplicitSub FormatMessage()    Dim strMsgText As String    strMsgText = "Extremely Important@This is an invalid operation.@" & _                 "Refer to online help."    MsgBox strMsgTextEnd 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.
PRB

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 242889 - Última Revisão: 02/10/2014 01:41:39 - Revisão: 3.0

  • Microsoft Access 2000 Standard Edition
  • kbnosurvey kbarchive kbmt kbprb KB242889 KbMtpt
Esta informação foi útil?