Função Formatar

Aplica-se A
Access para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Devolve uma Variante (Cadeia) que contém uma expressão formatada de acordo com instruções contidas numa expressão de formato.

Aviso Existe um problema com a utilização desta função. A última segunda-feira em alguns anos de calendário pode ser devolvida como semana 53 quando deve ser a semana 1. Para obter mais informações e uma solução alternativa, consulte As funções Format ou DatePart podem devolver o número da semana errada da última segunda-feira do ano.

Ver alguns exemplos

Sintaxe

Format( *expression [, format ] [, firstdayofweek ] [, firstweekofyear ] )

A sintaxe da função Formatar tem os seguintes argumentos:

Argumento Descrição
expressão Obrigatório. Qualquer expressão válida.
formato Opcional. Uma expressão de formato com nome válido ou definida pelo utilizador.
primeirodiadasemana Opcional. Uma constante que especifica o primeiro dia da semana.
primeirasemanadoano Opcional. Uma constante que especifica a primeira semana do ano.

    

Definições

O argumento de formato pode utilizar uma variedade de definições, consoante o tipo de dados do argumento de expressão . Consulte os artigos indicados na seguinte tabela para obter mais informações sobre expressões de formato válidas.

Para expressões que utilizam este tipo de dados... Consulte o artigo
Qualquer tipo Propriedade Formato
Data/hora Formatar um campo de data e hora
Numérico Formatar um campo de número ou moeda
Texto e memorando Formatar um campo de texto
Sim/Não Propriedade Formato – Tipo de Dados Sim/Não

    

O argumento primeirodiadasemana tem as seguintes definições:

Constante Valor Descrição
vbUseSystem 0 Utilizar a definição NLS API.
VbSunday 1 Domingo (predefinição)
vbMonday 2 Segunda-feira
vbTuesday 3 Terça-feira
vbWednesday 4 Quarta-feira
vbThursday 5 Quinta-feira
vbFriday 6 Sexta-feira
vbSaturday 7 Sábado

    

O argumento primeirasemanadoano tem as seguintes definições:

Constante Valor Descrição
vbUseSystem 0 Utilizar a definição NLS API.
vbFirstJan1 1 Começar com a semana de 1 de Janeiro (predefinição).
vbFirstFourDays 2 Começar com a primeira semana que tenha, pelo menos, quatro dias no ano.
vbFirstFullWeek 3 Começar com a primeira semana completa do ano.

    

Observações

Para Formatar Faça o seguinte
Números Utilize formatos numéricos com nomes predefinidos ou crie formatos numéricos definidos pelo utilizador.
Datas e horas Utilize formatos de data/hora com nomes predefinidos ou crie formatos de data/hora definidos pelo utilizador.
Números de série de data e hora Utilize formatos de data e hora ou formatos numéricos.
Cadeias Crie os seus próprios formatos de cadeia definidos pelo utilizador.

    

Se tentar formatar um número sem especificar o formato, o Formato fornece funcionalidades semelhantes à função Str , embora tenha noção internacional. No entanto, os números positivos formatados como cadeias de carateres com o Formato não incluem um espaço à esquerda reservado para o sinal do valor; os convertidos com Str mantêm o espaço à esquerda.

Se estiver a formatar uma cadeia numérica não localizada, deve utilizar um formato numérico definido pelo utilizador para garantir que obtém o aspeto pretendido.

Nota

Se a definição da propriedade Calendário for Gregoriano e o formato especificar a formatação de data, a expressão fornecida tem de ser Gregoriana. Se a definição da propriedade Calendário do Visual Basic for Hijri, a expressão fornecida tem de ser Hijri.

Se o calendário for Gregoriano, o significado dos símbolos de expressão de formato é inalterado. Se o calendário for Hijri, todos os símbolos de formato de data (por exemplo, dddd, mmmm, aaaa) têm o mesmo significado, mas aplicam-se ao calendário Hijri. Os símbolos de formato permanecem em inglês; os símbolos que resultam na apresentação de texto (por exemplo, AM e PM) apresentam a cadeia (inglês ou árabe) associada a esse símbolo. O intervalo de certos símbolos muda quando o calendário é Hijri.

Símbolo Intervalo
d 1-30
dd 1-30
ww 1-51
mmm Apresenta os nomes dos meses completos (os nomes dos meses do calendário Hijri não têm abreviações).
y 1-355
yyyy 100-9666

Exemplos

Utilizar a função Formatar numa expressão Pode utilizar a opção Formatar onde puder utilizar expressões. Por exemplo, pode utilizá-la numa consulta como parte do alias de um campo ou na propriedade Origem do Controlo de uma caixa de texto num formulário ou relatório. Os seguintes exemplos mostram uma expressão que pode utilizar na propriedade Filtro de um relatório para limitar o resultado para registos da semana anterior.

Formatar([Data],"ww")=Formatar(Agora(),"ww")-1

Neste exemplo, a origem de registos do relatório tem um campo chamado Data, que contém a data em que cada registo específico foi modificado e que é utilizada no relatório. Quando executa o relatório, os resultados são filtrados para mostrar apenas os registos em que a semana do valor no campo Data (Formatar([Data],"ww")) é igual à semana anterior (Formatar(Agora(),"ww")-1).

Utilizar a função Formatar em código VBA 

Nota

Os exemplos seguintes demonstram a utilização desta função no módulo VBA (Visual Basic for Applications). Para obter mais informações sobre trabalhar com o VBA, selecione Referência para Programadores na lista pendente junto a Procurar e introduza um ou mais termos na caixa de pesquisa.

O exemplo mostra várias utilizações da função Formatar para formatar valores ao utilizar formatos com nome e formatos definidos pelo utilizador. Para o separador de data (/), separador de hora (:) e literal AM/PM, a saída formatada real apresentada pelo sistema depende das definições de região do computador em que o código está em execução. Quando as horas e datas são apresentadas no ambiente de desenvolvimento, é utilizado o formato de hora e de data abreviado do código da região. Quando é apresentado através da execução do código, é utilizado o formato de hora e de data abreviado do sistema da região, que pode variar do código da região. Para este exemplo, é presumida a região EUA em inglês.

MyTime e MyDate são apresentados no ambiente de desenvolvimento com a definição de curto prazo do sistema atual e a definição de data abreviada.

Dim MyTime, MyDate, MyStr
MyTime = #17:04:23#
MyDate = #January 27, 1993#
' Returns current system time in the system-defined long time format.
MyStr = Format(Time, "Long Time")
' Returns current system date in the system-defined long date format.
MyStr = Format(Date, "Long Date")
MyStr = Format(MyTime, "h:m:s")    ' Returns "17:4:23".
MyStr = Format(MyTime, "hh:mm:ss AMPM")    ' Returns "05:04:23 PM".
MyStr = Format(MyDate, "dddd, mmm d yyyy")    ' Returns "Wednesday,
    ' Jan 27 1993".
' If format is not supplied, a string is returned.
MyStr = Format(23)    ' Returns "23".
' User-defined formats.
MyStr = Format(5459.4, "##,##0.00")    ' Returns "5,459.40".
MyStr = Format(334.9, "###0.00")    ' Returns "334.90".
MyStr = Format(5, "0.00%")    ' Returns "500.00%".
MyStr = Format("HELLO", "<")    ' Returns "hello".
MyStr = Format("This is it", ">")    ' Returns "THIS IS IT".

      

Utilizar Formatar com cadeias de comprimento zero

Na versão 2.0 e anterior do Microsoft Access, pode utilizar a função Formatar para devolver um valor para uma cadeia de comprimento zero e outro para um valor. Por exemplo, pode utilizar uma expressão de formato, tal como a seguinte com a função Formatar, para devolver o valor de cadeia adequado do código:

Dim varX As Variant
Dim varStrX As Variant
' Assign some value to varStrX and pass to Format function.
varX = Format(varStrX, "@;ZLS;Null")

No Microsoft Access versões 97 e posterior, tem de testar separadamente para o caso Nulo e, em seguida, devolver o valor adequado com base no resultado. Por exemplo, pode utilizar a função Ise numa expressão com a função Formatar tal como a seguinte:

varX = IIf(IsNull(varStrX),"Null", Format(varStrX, "@;ZLS"))

Esta alteração aplica-se apenas quando utiliza a função Formatar para formatar uma cadeia, dependendo se é uma cadeia de comprimento zero ou um valor Nulo. Outras expressões de formato utilizadas com a função Formatar continuam a funcionar tal como em versões anteriores.

Se converter uma base de dados do Microsoft Access versão 2.0 e anterior para o Microsoft Access 2002 ou posterior, tem de alterar o código para testar separadamente para o caso Nulo.

As funções de cadeia e como utilizá-las