SOMAR SUM NO ACCESS

USUARIO.EXCLUIDOS 07/12/2006 16:18:20
#188629
Salve.. Salve...
Peguei agora a pouco aqui no site algumas dicas para somar UM CAMPO DA TABELA DO ACCESS COM SUM...

O PROBLEMA........
Estou Usando o Seguinte Select

strsql = "Select CodFun,Funcionario,Sum(Valor) as Total From Folha Where Entrada >= DATEVALUE('" & CStr(IPeriodo) & "') AND Entrada<=DATEVALUE(' " & CStr(FPeriodo) & " ')" & " Group by CodFun,Funcionario"
rs.Open strsql, cnn, adOpenForwardOnly, adLockOptimistic

esta funcionando belezinha....
mas ...... gostaria de obter o valor final da soma (formatado).
em um dos registros ele esta me voltando assim 3816.9, onde .9 seria 3.816,90. se peço pra formatar depois do select usando um for no grid ta ficando assim 38.169,00.

gostaria de alguma dica pra resolver a parada.....

obrigado........



















USUARIO.EXCLUIDOS 07/12/2006 16:22:17
#188634
use a função FORMAT

strsql = "Select CodFun,Funcionario,FORMAT(Sum(Valor), 2) as Total From...



USUARIO.EXCLUIDOS 07/12/2006 16:26:08
#188635
Entendi... e pq vc não formata quando for colocar no grid? Acho que o problema está nas configurações regionais e a virgula e o ponto estão se perdendo...
HUGOSSOUZA 07/12/2006 16:28:57
#188636
aquele outro exemplo não funciona?

strsql = "Select CodFun, format(Sum(Valor),"##0,00") as Total From Folha Where Entrada >=
DATEVALUE('" & CStr(IPeriodo) & "') AND Entrada<=DATEVALUE(' " & CStr(FPeriodo) & " ')" & " Group by CodFun"

USUARIO.EXCLUIDOS 07/12/2006 16:42:07
#188637
opa hugo ele da um erro na instrução.. em "##0,00" ele não aceita de jeito nenhum...
USUARIO.EXCLUIDOS 07/12/2006 19:45:44
#188685
Resposta escolhida
O correto seria:

strsql = "Select CodFun,Funcionario,Format(Sum(Valor), '#0.00') as Total From Folha Where Entrada >= DATEVALUE('" & CStr(IPeriodo) & "') AND Entrada<=DATEVALUE(' " & CStr(FPeriodo) & " ')" & " Group by CodFun,Funcionario"
rs.Open strsql, cnn, adOpenForwardOnly, adLockOptimistic

Ou se quiser já em formato monetário:

strsql = "Select CodFun,Funcionario,Format(Sum(Valor), 'Currency') as Total From Folha Where Entrada >= DATEVALUE('" & CStr(IPeriodo) & "') AND Entrada<=DATEVALUE(' " & CStr(FPeriodo) & " ')" & " Group by CodFun,Funcionario"
rs.Open strsql, cnn, adOpenForwardOnly, adLockOptimistic

Ao invés de 'Currency', vc tb pode por 'Standard', põe o separador de milhar (o ponto), mas não põe o simbolo monetário (R$) como no Currency...

Qualquer dúvida poste...flw
USUARIO.EXCLUIDOS 08/12/2006 03:47:19
#188735
Substitua virgula por ponto, assim como no formato americano.

Espero ter ajudado.
Tópico encerrado , respostas não são mais permitidas