Retorna uma Variant (Cadeia de Caracteres) que contém uma expressão formatada de acordo com as instruções contidas em uma expressão de formato.
Aviso Há um problema com o uso dessa função. A última segunda-feira em alguns anos calendários pode ser retornada como semana 53, quando deve ser a semana 1. Para obter mais informações e uma solução alternativa, consulte Formato ou funções DatePart podem retornar o número da semana errada para a última segunda-feira no ano. |
Sintaxe
Format( expression [, format ] [, firstdayofweek ] [, firstweekofyear ] )
A sintaxe da função Format tem esses argumentos:
Argumento |
Descrição |
expressão |
Obrigatório. Qualquer expressão válida. |
formato |
Opcional. Uma expressão de formato nomeada ou definida pelo usuário válida. |
primeirodiadasemana |
Opcional. Um constante que especifica o primeiro dia da semana. |
primeirasemanadoano |
Opcional. Uma constante que especifica a primeira semana do ano. |
Configurações
O argumento de formato pode usar uma variedade de configurações, dependendo do tipo de dados do argumento de expressão . Consulte os artigos listados na tabela a seguir para obter mais informações sobre expressões de formato válidas.
Para expressões que usam esse tipo de dados... |
Confira o artigo |
Qualquer tipo |
|
Data/hora |
|
Numérico |
|
Texto e memorando |
|
Sim/Não |
O argumento firstdayofweek tem estas configurações:
Constante |
Valor |
Descrição |
vbUseSystem |
0 |
Use a configuração de API do NLS. |
VbSunday |
1 |
Domingo (padrã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 firstweekofyear tem estas configurações:
Constante |
Valor |
Descrição |
vbUseSystem |
0 |
Use a configuração de API do NLS. |
vbFirstJan1 |
1 |
Comece com a semana em que ocorre 1º de janeiro (padrão). |
vbFirstFourDays |
2 |
Comece com a primeira semana que tem pelo menos quatro dias no ano. |
vbFirstFullWeek |
3 |
Comece com a primeira semana completa do ano. |
Comentários
Para Formatar |
Faça isto |
Números |
Use formatos numéricos nomeados predefinidos ou crie formatos numéricos definidos pelo usuário. |
Datas e horários |
Use formatos de data/hora nomeados predefinidos ou crie formatos de data/hora definidos pelo usuário. |
Números de série de data e hora |
Use formatos de data e hora ou formatos numéricos. |
Strings |
Crie seus próprios formatos de cadeia de caracteres definidos pelo usuário. |
Se você tentar formatar um número sem especificar o formato, o Format fornecerá funcionalidade semelhante à função Str , embora seja internacionalmente consciente. No entanto, os números positivos formatados como cadeias de caracteres usando Format não incluem um espaço de liderança reservado para o sinal do valor; aqueles convertidos usando Str mantêm o espaço de liderança.
Se você estiver formatando uma cadeia de caracteres numérica não localizada, use um formato numérico definido pelo usuário para garantir que você obtenha a aparência desejada.
Observação: Se a configuração da propriedade Calendar for gregoriana e o formato especificar a formatação de data, a expressão fornecida deverá ser gregoriana. Se a configuração da propriedade Calendário Do Visual Basic for Hijri, a expressão fornecida deverá ser Hijri.
Se o calendário for gregoriano, o significado dos símbolos de expressão de formato será inalterado. Se o calendário for Hijri, todos os símbolos de formato de data (por exemplo, dddd, mmmm, yyyy) terão o mesmo significado, mas se aplicam ao calendário Hijri. Os símbolos de formato permanecem em inglês; símbolos que resultam em exibição de texto (por exemplo, AM e PM) exibem a cadeia de caracteres (inglês ou árabe) associada a esse símbolo. O intervalo de determinados símbolos muda quando o calendário é Hijri.
Símbolo |
Intervalo |
d |
1-30 |
dd |
1-30 |
ss |
1-51 |
mmm |
Exibe nomes de mês completos (nomes de mês hijri não têm abreviações). |
nte misturada, |
1-355 |
aaaa |
100-9666 |
Exemplos
Usar a função Format em uma expressão Você pode usar o Formato onde puder usar expressões. Por exemplo, você pode usá-lo em uma consulta como parte de um alias de campo ou na propriedade Fonte de Controle de uma caixa de texto em um formulário ou um relatório. Os exemplos a seguir mostram uma expressão que você pode usar na propriedade Filter de um relatório para limitar a saída a registros da semana anterior.
Format([Date],"ww")=Format(Now(),"ww")-1
Neste exemplo, a fonte de registro do relatório tem um campo chamado Date, que contém a data em que cada registro específico foi modificado e que é usado no relatório. Quando você executa o relatório, seus resultados são filtrados para mostrar apenas os registros em que a semana do valor no campo Date (Format([Date],"ww")) é igual à semana anterior (Format(Now(),"ww")-1).
Usar a função Format no código VBA
Observação: Exemplos a seguir demonstram o uso dessa função em um módulo VBA (Visual Basic for Applications). Para obter mais informações sobre como trabalhar com o VBA, selecione Referência do Desenvolvedor na lista suspensa ao lado de Pesquisar e insira um ou mais termos na caixa de pesquisa.
Este exemplo mostra vários usos da função Format para formatar valores usando formatos nomeados e formatos definidos pelo usuário. Para o separador de data (/), separador de hora (:) e literal AM/PM, a saída formatada real exibida pelo sistema depende das configurações de localidade do computador em que o código está em execução. Quando os horários e datas são exibidos no ambiente de desenvolvimento, o formato de tempo curto e o formato de data curta da localidade de código são usados. Quando exibido executando o código, o formato de tempo curto e o formato de data curta da localidade do sistema são usados, o que pode ser diferente da localidade do código. Para este exemplo, a localidade em inglês dos EUA é assumida.
MyTime e MyDate são exibidos no ambiente de desenvolvimento usando a configuração de tempo curto do sistema atual e a configuração de data curta.
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".
Usando Formato com cadeias de caracteres de comprimento zero
No Microsoft Access versão 2.0 e anterior, você pode usar a função Format para retornar um valor para um cadeia de comprimento zero e outro para um valor. Por exemplo, você pode usar uma expressão de formato como a seguinte com a função Format para retornar o valor de cadeia de caracteres apropriado 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")
Nas versões do Microsoft Access 97 e posteriores, você deve testar separadamente para o caso Null e retornar o valor apropriado com base no resultado. Por exemplo, você pode usar a função IIf em uma expressão com a função Format , como o seguinte:
varX = IIf(IsNull(varStrX),"Null", Format(varStrX, "@;ZLS"))
Essa alteração se aplica somente quando você usa a função Format para formatar uma cadeia de caracteres dependente de se é uma cadeia de caracteres de comprimento zero ou um valor Nulo. Outras expressões de formato usadas com a função Format continuam funcionando como nas versões anteriores.
Se você converter um banco de dados do Microsoft Access versão 2.0 e anterior ao Microsoft Access 2002 ou posterior, deverá alterar o código para testar separadamente para o caso Null.