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; 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 |
ss |
1-51 |
mmm |
Apresenta nomes de meses completos (os nomes dos meses hijri não têm abreviaturas). |
nte misturada, |
1-355 |
aaaa |
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á-lo numa consulta como parte de um alias de campo ou na propriedade Origem do Controlo de uma caixa de texto num formulário ou relatório. Os exemplos seguintes mostram uma expressão que pode utilizar na propriedade Filtro de um relatório para limitar o resultado aos registos da semana anterior.
Format([Date],"ww")=Format(Now(),"ww")-1
Neste exemplo, a origem de registos do relatório tem um campo denominado Data, que contém a data em que cada registo específico foi modificado e que é utilizado no relatório. Quando executa o relatório, os respetivos 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 no código VBA
Observação: Os exemplos que se seguem demonstram a utilização desta função num módulo VBA (Visual Basic for Applications). Para obter mais informações sobre como trabalhar com o VBA, selecione Referência do Programador na lista pendente junto a Procurar e introduza um ou mais termos na caixa de pesquisa.
Este exemplo mostra várias utilizações da função Formatar para formatar valores ao utilizar formatos nomeados 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 abreviada e o formato de data abreviado da região do código. Quando apresentado através da execução de código, é utilizado o formato de hora abreviada e o formato de data abreviado da região do sistema, que podem diferir da região do código. Neste exemplo, é assumida a região inglês dos E.U.A.
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 um cadeia de comprimento zero e outro para um valor. Por exemplo, pode utilizar uma expressão de formato como a seguinte com a função Format 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")
Nas versões 97 e posteriores do Microsoft Access, 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 , 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 como em versões anteriores.
Se converter uma base de dados da versão 2.0 e anterior do Microsoft Access para o Microsoft Access 2002 ou posterior, tem de alterar o código para testar separadamente para o caso Nulo.