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. |
Sintaxe
Formatar( expressão [, formato ] [, primeirodiadasemana ] [, primeirasemanadoano ] )
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 |
|
Data/hora |
|
Numérico |
|
Texto e memorando |
|
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 funçã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 AM/PM literal, o resultado formatado real apresentado pelo nosso sistema depende das definições de região do computador no qual o código está a ser executado. 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 através da definição de data e de hora abreviada do sistema atual.
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 a função Formatar com cadeias de comprimento zero
No Microsoft Access versão 2.0 e anterior, 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.