... Pague apenas R$67,00 uma única vez e tenha acesso por 1 ano aos vídeos e arquivos exemplos do site ...

Clique aqui e obtenha mais detalhes.


Valor de data por extenso

Desenvolvi uma função que transforma uma data por extenso. Exemplo: 23/11/2016 ::> Vinte e três de novembro de dois mil e dezesseis.

A função analisa datas entre 01/01/1001 e 31/12/2999. 

Public Function fncDataExtenso(Dta As Date)
Dim u, d, c, l, m, dia, ano
Const strUni = "um,dois,três,quatro,cinco,seis,sete,oito,nove"
 
Const strDez = "dez,onze,doze,treze,quatorze,quinze,dezesseis, _
dezessete,dezoito,dezenove,vinte,trinta,quarenta,cinquenta, _
sessenta,setenta,oitenta,noventa"
 
Const strCen = "cem,duzentos,trezentos,quatrocentos,quinhentos, _
seiscentos,setecentos,oitocentos,novecentos"
 
Const strMil = "mil,dois mil"
 
Const strMes = "janeiro,fevereiro,março,abril,maio,junho,julho, _
agosto,setembro,outubro,novembro,dezembro"

u = Split(strUni, ",")
d = Split(strDez, ",")
c = Split(strCen, ",")
l = Split(strMil, ",")
m = Split(strMes, ",")
'----------------
'montagem do dia
'----------------
Select Case Day(Dta)
    Case Is < 10
        dia = u(Day(Dta) - 1)
    Case 10 To 19
        dia = d(Day(Dta) - 10)
    Case 20, 30
        dia = d(Left(Day(Dta), 1) + 8)
    Case 21 To 29, 31
        dia = d(Left(Day(Dta), 1) + 8) & " e " & u(Right(Day(Dta), 1) - 1)
End Select

'----------------
'montagem do ano
'----------------
If Year(Dta) < 1000 Or Year(Dta) > 2999 Then Exit Function
ano = l(Left(Year(Dta), 1) - 1)
If Mid(Year(Dta), 2, 1) > 0 Then
    If Right(Year(Dta), 2) = 0 Then
        ano = ano & " e " & c(Mid(Year(Dta), 2, 1) - 1)
    Else
        ano = ano & " " & IIf(c(Mid(Year(Dta), 2, 1) - 1) = "cem", "cento", _ 
        c(Mid(Year(Dta), 2, 1) - 1))
    End If
End If
Select Case Right(Year(Dta), 2)
    Case 0
        ano = ano
    Case 1 To 10
        ano = ano & " e " & u(Right(Year(Dta), 2) - 1)
    Case 10 To 19
        ano = ano & " e " & d(Right(Year(Dta), 2) - 10)
    Case 20 To 99
        ano = ano & " e " & d(Mid(Year(Dta), 3, 1) + 8)
        If Right(Year(Dta), 1) > 0 Then 
           ano = ano & " e " & u(Right(Year(Dta), 1) - 1)
        end if
End Select

'----------------------
'montagem por extenso
'----------------------
fncDataExtenso = dia & " de " & m(Month(Dta) - 1) & " de " & ano
End Function

Baixe o arquivo:

Clique aqui e baixe o arquivo exemplo.

Abra a consulta do arquivo exemplo e veja o retorno dos nomes por extenso.

Usando Access - Data por extenso

Veja como foi aplicada a função na consulta:

SELECT DataArquivo, fncDataExtenso([dataArquivo]) AS Extenso
FROM tblTeste;

Agora, abra o formulário frmTeste, escolha uma data qualquer e clique no botão Visualizar o relatório.  Observe a data por extenso no relatório.

Usando Access - Data por extenso

O relatório apresenta o seguinte código no evento Ao carregar:

Private Sub Report_Load()
Me!Texto0 = "[div]Avelino Sampaio nasceu em [font color=red]" _ 
& fncDataExtenso(Me.OpenArgs) & "[/font][/div]"
End Sub

Bom estudo!


 

 


Não há comentário

Envie seu comentário: