2 participantes
[Resolvido]Somar Total no Relatório
predator32- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 49
Registrado : 18/02/2012
- Mensagem nº51
Re: [Resolvido]Somar Total no Relatório
Gostaria que ficasse mais ou menos assim:
predator32- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 49
Registrado : 18/02/2012
- Mensagem nº52
Re: [Resolvido]Somar Total no Relatório
na foto que postei, eu fui lá na origem da linha dos dois combobox e no formato que estava "mmmm/yyyy" eu adicionei "25/" ficando assim:
SELECT Format$([DataEntrada],"25/mmmm/yyyy") AS Expr1 FROM TabHorasExtras GROUP BY Format$([DataEntrada],"25/mmmm/yyyy") ORDER BY Format$([DataEntrada],"25/mmmm/yyyy");
Mas a gambiarra não deu certo, da erro: Voce inseriu um expressão que não tem valor ...
SELECT Format$([DataEntrada],"25/mmmm/yyyy") AS Expr1 FROM TabHorasExtras GROUP BY Format$([DataEntrada],"25/mmmm/yyyy") ORDER BY Format$([DataEntrada],"25/mmmm/yyyy");
Mas a gambiarra não deu certo, da erro: Voce inseriu um expressão que não tem valor ...
FabioPaes- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3914
Registrado : 14/08/2013
- Mensagem nº53
Re: [Resolvido]Somar Total no Relatório
Amigão, veja essa forma:
Exclua a cboMesFinal, deixando apenas a cboMesInicial;
Renomeie a cboMesInicial para cboMes;
Mude a Origem da Linha da cboMes para ( SELECT Format$([DataEntrada],"mmmm") AS Expr1 FROM TabHorasExtras GROUP BY Format([dataEntrada],"mm"), Format$([DataEntrada],"mmmm") ORDER BY Format([dataEntrada],"mm"); );
Crie uma nova Combo com o nome (cboAno) e coloque a origem da linha( SELECT Year([DataEntrada]) AS Expr1 FROM TabHorasExtras GROUP BY Year([DataEntrada]) ORDER BY Year([DataEntrada]); ), coloque como valor padrão ( Ano(Data()) );
Agora no Botão de Visualizar apague o que tem la e cole o código a baixo:
Ao clicar no Botão de visualizar o Relatório, irei analisar o que tem na cboMes, e fazer uma seleção de Caso...
Se For Janeiro Aplico o Filtro nos dados com a Data de 26/12/(ano anterior ao selecionado) e 25/01/(ano selecionado)
E assim por diante... Acredito que assim não terá erros amigo...
A unica Funcionalidade que perdeu é que, digamos que queira no mesmo relatório todas os meses (de Janeiro a Dezembro) não funcionará, pois o mes de Janeiro começou no Ano Anterior!
Caso haja a Necessidade desse relatório, terá que fazer a geração dele da forma como esta antes...
Exclua a cboMesFinal, deixando apenas a cboMesInicial;
Renomeie a cboMesInicial para cboMes;
Mude a Origem da Linha da cboMes para ( SELECT Format$([DataEntrada],"mmmm") AS Expr1 FROM TabHorasExtras GROUP BY Format([dataEntrada],"mm"), Format$([DataEntrada],"mmmm") ORDER BY Format([dataEntrada],"mm"); );
Crie uma nova Combo com o nome (cboAno) e coloque a origem da linha( SELECT Year([DataEntrada]) AS Expr1 FROM TabHorasExtras GROUP BY Year([DataEntrada]) ORDER BY Year([DataEntrada]); ), coloque como valor padrão ( Ano(Data()) );
Agora no Botão de Visualizar apague o que tem la e cole o código a baixo:
- Código:
Private Sub btVisualizaRelatorio_Click()
Dim dtInicio, dtFim As Date
If IsNull(Me.cboMes) Then
MsgBox "É necessario informar o Mes", vbInformation
Me.cboMes.SetFocus
Else
Select Case Me.cboMes
Case "Janeiro"
dtInicio = "26/12/" & (Me.cboAno - 1)
dtFim = "25/01/" & Me.cboAno
MsgBox "'" & Me.cboAno & "'"
MsgBox "DataEntrada between # " & dtInicio & " # AND # " & dtInicio & " #"
DoCmd.OpenReport "TabHorasExtras", acViewPreview, , "DataEntrada between # " & Format(dtInicio, "mm/dd/yyyy") & " # AND # " & Format(dtFim, "mm/dd/yyyy") & " #"
Case "Fevereiro"
dtInicio = "26/01/" & Me.cboAno
dtFim = "25/02/" & Me.cboAno
DoCmd.OpenReport "TabHorasExtras", acViewPreview, , "DataEntrada between # " & Format(dtInicio, "mm/dd/yyyy") & " # AND # " & Format(dtFim, "mm/dd/yyyy") & " #"
'Coloque os outros casos... Todos os Meses do ano
'....
'....
Case "Dezembro"
dtInicio = "25/11/" & Me.cboAno
dtFim = "25/12/" & Me.cboAno
DoCmd.OpenReport "TabHorasExtras", acViewPreview, , "DataEntrada between # " & Format(dtInicio, "mm/dd/yyyy") & " # AND # " & Format(dtFim, "mm/dd/yyyy") & " #"
End Select
End If
End Sub
Ao clicar no Botão de visualizar o Relatório, irei analisar o que tem na cboMes, e fazer uma seleção de Caso...
Se For Janeiro Aplico o Filtro nos dados com a Data de 26/12/(ano anterior ao selecionado) e 25/01/(ano selecionado)
E assim por diante... Acredito que assim não terá erros amigo...
A unica Funcionalidade que perdeu é que, digamos que queira no mesmo relatório todas os meses (de Janeiro a Dezembro) não funcionará, pois o mes de Janeiro começou no Ano Anterior!
Caso haja a Necessidade desse relatório, terá que fazer a geração dele da forma como esta antes...
.................................................................................
_____________________________________________________________________
Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
A dica do Colega foi útil? Agradeça!
Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
A dica do Colega foi útil? Agradeça!
O importante não saber tudo, mas sim a Onde procurar!
predator32- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 49
Registrado : 18/02/2012
- Mensagem nº54
Re: [Resolvido]Somar Total no Relatório
Esta dando erro: Voce inseriu uma expressão que nao tem valor. O mesmo erro que dava quando tentei da forma como tinha lhe passado.
FabioPaes- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3914
Registrado : 14/08/2013
- Mensagem nº55
Re: [Resolvido]Somar Total no Relatório
Quando da esse erro?
.................................................................................
_____________________________________________________________________
Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
A dica do Colega foi útil? Agradeça!
Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
A dica do Colega foi útil? Agradeça!
O importante não saber tudo, mas sim a Onde procurar!
predator32- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 49
Registrado : 18/02/2012
- Mensagem nº56
Re: [Resolvido]Somar Total no Relatório
quando clico para visualizar o relatório.
FabioPaes- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3914
Registrado : 14/08/2013
- Mensagem nº57
Re: [Resolvido]Somar Total no Relatório
Deve ter ficado algo sem ser feito...
Veja aqui quais as diferenças...
https://www.dropbox.com/s/r9ql4mewt2eq5xz/BD1.zip?dl=0
Analise apenas a Consulta e o Formulário de visualização do relatório.
Veja aqui quais as diferenças...
https://www.dropbox.com/s/r9ql4mewt2eq5xz/BD1.zip?dl=0
Analise apenas a Consulta e o Formulário de visualização do relatório.
.................................................................................
_____________________________________________________________________
Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
A dica do Colega foi útil? Agradeça!
Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
A dica do Colega foi útil? Agradeça!
O importante não saber tudo, mas sim a Onde procurar!
predator32- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 49
Registrado : 18/02/2012
- Mensagem nº58
Re: [Resolvido]Somar Total no Relatório
Veja ai, esta dando erro, copiei do BD que voce mandou e simplesmente colei, ainda coloquei os meses de outubro e novembro no select case, mas ta dando erro.
- Anexos
- Horas Extras Corrigido.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (192 Kb) Baixado 2 vez(es)
FabioPaes- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3914
Registrado : 14/08/2013
- Mensagem nº59
Re: [Resolvido]Somar Total no Relatório
O problema e que vc não realizou a comparação que lhe pedi amigo...
O problema esta na Consulta...
Remova o Critério que tem no Campo MesAno (Entre [Formulários]![frmVisusalizaRelatorio]![cboMesInicial] E [Formulários]![frmVisusalizaRelatorio]![cboMesFinal]), pois isso não se aplica mais ao seu caso...
Reveja, e compare com o que lhe mandei...
Analise apenas a Consulta e o Formulário de visualização do relatório.
O problema esta na Consulta...
Remova o Critério que tem no Campo MesAno (Entre [Formulários]![frmVisusalizaRelatorio]![cboMesInicial] E [Formulários]![frmVisusalizaRelatorio]![cboMesFinal]), pois isso não se aplica mais ao seu caso...
Reveja, e compare com o que lhe mandei...
.................................................................................
_____________________________________________________________________
Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
A dica do Colega foi útil? Agradeça!
Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
A dica do Colega foi útil? Agradeça!
O importante não saber tudo, mas sim a Onde procurar!
predator32- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 49
Registrado : 18/02/2012
- Mensagem nº60
Re: [Resolvido]Somar Total no Relatório
Ok, deu quase certo aqui, mas o que esta acontecendo, quando seleciono o mes outubro ele da o mesmo erro. O que acontece, tem um registro que data no dia 27/10, mas o filtro só leva em consideração até 25/10 para valer hora extra para este Mês, ai da aquele erro de expressao sem valor, como faço para contornar esse erro ? Voce colocou uma condicional para o caso da combobox ser nula, mas para esse caso ? como faz ? Tem o mes de outubro, mas vale para o mes de novembro, visto que é do dia 27/10. Isso pode acontecer, quando por exemplo uma pessoa que estava afastada e recomeça numa data assim ...
predator32- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 49
Registrado : 18/02/2012
- Mensagem nº61
Re: [Resolvido]Somar Total no Relatório
Fiz o teste no BD modificado que voce mandou para mim e da o mesmo erro também. Tenta la: Escolha o Mês de Fevereiro e o Ano de 2015. Vai dar o mesmo erro.
FabioPaes- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3914
Registrado : 14/08/2013
- Mensagem nº62
Re: [Resolvido]Somar Total no Relatório
O erro e na Função, pois não tem registros para esse período (Fevereiro e o Ano de 2015)
https://www.dropbox.com/s/8osbaww31bltx8y/BD1.zip?dl=0
https://www.dropbox.com/s/8osbaww31bltx8y/BD1.zip?dl=0
.................................................................................
_____________________________________________________________________
Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
A dica do Colega foi útil? Agradeça!
Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
A dica do Colega foi útil? Agradeça!
O importante não saber tudo, mas sim a Onde procurar!
predator32- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 49
Registrado : 18/02/2012
- Mensagem nº63
Re: [Resolvido]Somar Total no Relatório
pode me dizer aonde voce mexeu, pois parece tudo igual
predator32- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 49
Registrado : 18/02/2012
- Mensagem nº64
Re: [Resolvido]Somar Total no Relatório
Engraçado, no seu esta dando certo, mas no meu aqui, copiei e colei o codigo mas continua dando o mesmo erro na hora de visualizar
predator32- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 49
Registrado : 18/02/2012
- Mensagem nº65
Re: [Resolvido]Somar Total no Relatório
Até onde reparei voce colocou um tratamento para o erro na seção Detalhe Print. Copiei e colei no meu Bd e continua o mesmo erro, mesmo codigo de erro, apesar de ter uma rotina de tratamento para ela la
FabioPaes- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3914
Registrado : 14/08/2013
- Mensagem nº66
Re: [Resolvido]Somar Total no Relatório
Foi so la no Tratamento de erro mesmo que mexi amigo...
Apenas, quando o erro for o 2427 que é qnd não tem registros, ele emita a mensagem, ou coloque Exit Sub.
Somente la...
Mas compare a Função, pois essa Função eu havia refeito ela a umas mensagens anteriores... Refiz para melhorar. Veja que so utilizo um Modulo.
Apenas, quando o erro for o 2427 que é qnd não tem registros, ele emita a mensagem, ou coloque Exit Sub.
Somente la...
Mas compare a Função, pois essa Função eu havia refeito ela a umas mensagens anteriores... Refiz para melhorar. Veja que so utilizo um Modulo.
.................................................................................
_____________________________________________________________________
Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
A dica do Colega foi útil? Agradeça!
Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
A dica do Colega foi útil? Agradeça!
O importante não saber tudo, mas sim a Onde procurar!
predator32- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 49
Registrado : 18/02/2012
- Mensagem nº67
Re: [Resolvido]Somar Total no Relatório
Ok, ao que parece esta dando certo aqui. Só mais uma ultima pergunta: Se eu quisesse fazer um relatórios anual, com todos os meses, devidamente filtrado (inicio e termino dia 25). Teria como ?
predator32- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 49
Registrado : 18/02/2012
- Mensagem nº68
Re: [Resolvido]Somar Total no Relatório
Gostaria que ficasse assim, mas devidamente filtrado: entrada 25 e saida 25 como no que voce fez, só que agora é um relatório anual, com todos os meses:
FabioPaes- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3914
Registrado : 14/08/2013
- Mensagem nº69
Re: [Resolvido]Somar Total no Relatório
Olha, daria pra incluir la uma Opção "Anual", e daee vc selecionaria o ano na cboAno. Porem, esbarramos novamente no problema que o que seria agrupamento Mensal, não é na Verdade Mensal... É um periodo entre os cinco últimos dias do mês anterior ate antes cinco dias...
Eu sinceramente, nao consegui ainda pensar em algo pra esse su problema o...
Eu sinceramente, nao consegui ainda pensar em algo pra esse su problema o...
.................................................................................
_____________________________________________________________________
Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
A dica do Colega foi útil? Agradeça!
Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
A dica do Colega foi útil? Agradeça!
O importante não saber tudo, mas sim a Onde procurar!
predator32- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 49
Registrado : 18/02/2012
- Mensagem nº70
Re: [Resolvido]Somar Total no Relatório
Eu criei um formulário que contém duas combobox: Funcionário e Ano. Tentei adaptar seu filtro la mas não consegui. Teria como adaptar o filtro que voce criou para este formulario ? Para gerar o relatório anual .
predator32- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 49
Registrado : 18/02/2012
- Mensagem nº71
Re: [Resolvido]Somar Total no Relatório
Bom, estou no aguardo, quem sabe não aparece uma solução.
Abraços!
Abraços!
predator32- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 49
Registrado : 18/02/2012
- Mensagem nº72
Re: [Resolvido]Somar Total no Relatório
Porque que o campo cboMes eu não consigo subtrair 1 e o campo cboAno eu consigo subtrair ?
Tipo: supondo que cboMes seja Dezembro eu fazendo assim (cboMes -1 ) daria Novembro.
Esta no formulario que voce criou para visualizar e salvar em pdf.
Como que eu faço para subtrair 1 ? Já tentei de varias formas mas nao consegui.
Tipo: supondo que cboMes seja Dezembro eu fazendo assim (cboMes -1 ) daria Novembro.
Esta no formulario que voce criou para visualizar e salvar em pdf.
Como que eu faço para subtrair 1 ? Já tentei de varias formas mas nao consegui.
predator32- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 49
Registrado : 18/02/2012
- Mensagem nº73
Re: [Resolvido]Somar Total no Relatório
Estava pensado aqui, voce fez assim para filtrar os meses:
dtInicio = "26/01/" & Me.cboAno
dtFim = "25/02/" & Me.cboAno
DoCmd.OpenReport "TabHorasExtras", acViewPreview, , "DataEntrada between # " & Format(dtInicio, "mm/dd/yyyy") & " # AND # " & Format(dtFim, "mm/dd/yyyy") & " #"
A parte em vermelho seria o filtro, mas não consigo entender, tem muita aspas e jogo da velha ali, desconheço isso, gostaria de entender mais.
Voltando, se nas variaveis dtInicio e dtFim se voce fizesse assim:
dtInicio = "25/" & Me.DataEntrada & "/" & Me.cboAno
dtFim = "25/" & Me.DataSaida & "/" & Me.cboAno
Daria certo? Aí ao invés de fazer o aquele select todo só faria um If Then Else para o caso do Mes de Janeiro e o restante continuaria o mesmo.
Tentei fazer assim só que deu meio certo:
Eu tenho registros até o dia 29/11 e o mes de novembro filtro correto até o dia 24/11, só que o mes inicial começou no dia 27/10, o que estaria errado , teria que começar até o dia 25. Teria como fazer assim dar certo também para o relatório anual, eu tentei mas da erro de sintaxe do filtro entre outros ...
dtInicio = "26/01/" & Me.cboAno
dtFim = "25/02/" & Me.cboAno
DoCmd.OpenReport "TabHorasExtras", acViewPreview, , "DataEntrada between # " & Format(dtInicio, "mm/dd/yyyy") & " # AND # " & Format(dtFim, "mm/dd/yyyy") & " #"
A parte em vermelho seria o filtro, mas não consigo entender, tem muita aspas e jogo da velha ali, desconheço isso, gostaria de entender mais.
Voltando, se nas variaveis dtInicio e dtFim se voce fizesse assim:
dtInicio = "25/" & Me.DataEntrada & "/" & Me.cboAno
dtFim = "25/" & Me.DataSaida & "/" & Me.cboAno
Daria certo? Aí ao invés de fazer o aquele select todo só faria um If Then Else para o caso do Mes de Janeiro e o restante continuaria o mesmo.
Tentei fazer assim só que deu meio certo:
Eu tenho registros até o dia 29/11 e o mes de novembro filtro correto até o dia 24/11, só que o mes inicial começou no dia 27/10, o que estaria errado , teria que começar até o dia 25. Teria como fazer assim dar certo também para o relatório anual, eu tentei mas da erro de sintaxe do filtro entre outros ...
predator32- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 49
Registrado : 18/02/2012
- Mensagem nº74
Re: [Resolvido]Somar Total no Relatório
Na verdade o filtro só da certo com a variavel dtFim, filtra certo, mas a primeira variavel nao filtra (dtInicio), fazendo do meu jeito como falei anteriormente ...
predator32- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 49
Registrado : 18/02/2012
- Mensagem nº75
Re: [Resolvido]Somar Total no Relatório
Só para constar, eu estou tentando implementar no botao que gera o PDF do relatório e não no botão que visualiza.
FabioPaes- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3914
Registrado : 14/08/2013
- Mensagem nº76
Re: [Resolvido]Somar Total no Relatório
Porque eu fiz com todas os 12 Casos?
Simples, para evitar erros de digitação, pois em determinado momento ao gerar o relatorio, a pessoa pode nao saber que o periodo pega os ultimos cinco dias do mes anterior e so vai ate o dia 25 do mes corrente. Dessa forma ele pode gerar um relatorio errado e a empresa sair no prejuizo. rerererere
Temos que evitar ao maximo dar chances de erro ao usuario final.
Entendendo os Filtros:
Toda data passado pelo VBA deve necessariamente estar entre #12/01/2016# e no formato mm/dd/yyy. <==== Lembre-se dessa regra.
Tente filtrar pelo VBA a data de 05 Fevereiro 2016 no formato dd/mm/yyyy 05/02/2016.
Vc nunca obtera o resultado correto, pois o VBA entende que essa data na verdade é 02 maio 2016. Por isso a necessidade de sempre Formatarmos a data para mm/dd/yyyy.
Vamos analisar o filtro:
# " & Format(dtFim, "mm/dd/yyyy") & " #
Aqui eu Coloco a data entre os ## e formato ela para "mm/dd/yyyy" e as aspas se vc olhar sao as apas abertas e fechadas normalmente em qualquer instrução...
Simples, para evitar erros de digitação, pois em determinado momento ao gerar o relatorio, a pessoa pode nao saber que o periodo pega os ultimos cinco dias do mes anterior e so vai ate o dia 25 do mes corrente. Dessa forma ele pode gerar um relatorio errado e a empresa sair no prejuizo. rerererere
Temos que evitar ao maximo dar chances de erro ao usuario final.
Entendendo os Filtros:
Toda data passado pelo VBA deve necessariamente estar entre #12/01/2016# e no formato mm/dd/yyy. <==== Lembre-se dessa regra.
Tente filtrar pelo VBA a data de 05 Fevereiro 2016 no formato dd/mm/yyyy 05/02/2016.
Vc nunca obtera o resultado correto, pois o VBA entende que essa data na verdade é 02 maio 2016. Por isso a necessidade de sempre Formatarmos a data para mm/dd/yyyy.
Vamos analisar o filtro:
# " & Format(dtFim, "mm/dd/yyyy") & " #
Aqui eu Coloco a data entre os ## e formato ela para "mm/dd/yyyy" e as aspas se vc olhar sao as apas abertas e fechadas normalmente em qualquer instrução...
.................................................................................
_____________________________________________________________________
Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
A dica do Colega foi útil? Agradeça!
Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
A dica do Colega foi útil? Agradeça!
O importante não saber tudo, mas sim a Onde procurar!