Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
MontaClausulaWhere usando DATAS ?
-
- Acabou de chegar
- Mensagens: 5
- Registrado em: Ter Mai 24, 2011 12:30 am
Re: MontaClausulaWhere usando DATAS ?
Sou iniciante em VBA. Gostaria do arquivo de exemplo postado viewtopic.php?f=5&t=375 , mas ele está corrompido. Estou procurando isso faz um tempo. Uso o v3. Gostaria de filtrar a pesquisa entre datas e entre horários. Ex.: filtrar de 01/02/2011 à 23/03/2011 | Ex.2: filtrar de 12h00min as 14h00min) .
Desculpe por perguntar tanto. Mas teria como gerar um relatório deste filtro com cabeçalho e um rodapé com campo de assinatura. (consigo fazer isso com um registro, mandando imprimir no formulário). Mas o que queria é que gerasse um relatório compacto com vários registros.
A intenção é protocolar documentos e gerar relatório para entrega dos mesmos. É por horário, devido eles serem entregues aos poucos.
Ronaldo Filho
Desculpe por perguntar tanto. Mas teria como gerar um relatório deste filtro com cabeçalho e um rodapé com campo de assinatura. (consigo fazer isso com um registro, mandando imprimir no formulário). Mas o que queria é que gerasse um relatório compacto com vários registros.
A intenção é protocolar documentos e gerar relatório para entrega dos mesmos. É por horário, devido eles serem entregues aos poucos.
Ronaldo Filho
- Anexos
-
- Registro de Protocolo.zip
- Meu arquivo
- (115.34 KiB) Baixado 500 vezes
- Mauro Coutinho
- Jedi
- Mensagens: 1561
- Registrado em: Sáb Mar 13, 2010 8:10 pm
- Localização: São José dos Pinhais - Pr
Re: MontaClausulaWhere usando DATAS ?
Ronaldo, você quer dois tipos de Filtros separados ?
Um para Datas e outro para Horários ?
No modelo que anexou, não tem celulas com Horários, só Datas.
Assim que possível vou fazer um exemplo para o forum com filtros de Datas., conforme eu mencionei, apesar que see baixar o Modelo do Tomas e seguir o que expliquei terá facilmente a filtragem entre Datas.
[]s
Um para Datas e outro para Horários ?
No modelo que anexou, não tem celulas com Horários, só Datas.
Assim que possível vou fazer um exemplo para o forum com filtros de Datas., conforme eu mencionei, apesar que see baixar o Modelo do Tomas e seguir o que expliquei terá facilmente a filtragem entre Datas.
[]s
-
- Acabou de chegar
- Mensagens: 5
- Registrado em: Ter Mai 24, 2011 12:30 am
Re: MontaClausulaWhere usando DATAS ?
Atualizei o arquivo. Agora está mais limpo, nomes corretos e coloquei um calendário na pesquisa para preencher as datas. O filtro é para datas em todos os horários (Ex: de 01/05/2011 à 23/05/2011 independente dos horários) e Período de horário em determinada data (Ex: Todos do dia 15/05/2011 das 10:30 às 11:20). Obrigado pela pronta resposta.Mauro Coutinho escreveu:Ronaldo, você quer dois tipos de Filtros separados ?
Um para Datas e outro para Horários ?
No modelo que anexou, não tem celulas com Horários, só Datas.
Assim que possível vou fazer um exemplo para o forum com filtros de Datas., conforme eu mencionei, apesar que see baixar o Modelo do Tomas e seguir o que expliquei terá facilmente a filtragem entre Datas.
[]s
- Anexos
-
- Registro de Protocolo_atualizado.zip
- Meu arquivo atualizado
- (251.46 KiB) Baixado 497 vezes
- Mauro Coutinho
- Jedi
- Mensagens: 1561
- Registrado em: Sáb Mar 13, 2010 8:10 pm
- Localização: São José dos Pinhais - Pr
Re: MontaClausulaWhere usando DATAS ?
Ronaldo, se quer a filtragem somente por Datas "independente dos horários e Período de horário em determinada data", para que colocou TextBox de Hora Inicial e Final ?
Seja como for, fiz as adaptações para Filtrar Por uma única Data e ENTRE DATAS.
Uma Obs, é que em seu Arquivo "ModeloCadastro_Dados.xls" a Coluna Data estava formatada com "Geral", modifiquei a formatação para "Data" e arrumei na Rotina do Form Cadastro a linha para que seja lançada a Data correta já formatada.
Faça os testes e veja se seria isto, qq duvida retorne. abraços
Seja como for, fiz as adaptações para Filtrar Por uma única Data e ENTRE DATAS.
Uma Obs, é que em seu Arquivo "ModeloCadastro_Dados.xls" a Coluna Data estava formatada com "Geral", modifiquei a formatação para "Data" e arrumei na Rotina do Form Cadastro a linha para que seja lançada a Data correta já formatada.
Faça os testes e veja se seria isto, qq duvida retorne. abraços
-
- Acabou de chegar
- Mensagens: 5
- Registrado em: Ter Mai 24, 2011 12:30 am
Re: MontaClausulaWhere usando DATAS ?
Cara valeu, mesmo pela ajuda!Mauro Coutinho escreveu:Ronaldo, se quer a filtragem somente por Datas "independente dos horários e Período de horário em determinada data", para que colocou TextBox de Hora Inicial e Final ?
Seja como for, fiz as adaptações para Filtrar Por uma única Data e ENTRE DATAS.
Uma Obs, é que em seu Arquivo "ModeloCadastro_Dados.xls" a Coluna Data estava formatada com "Geral", modifiquei a formatação para "Data" e arrumei na Rotina do Form Cadastro a linha para que seja lançada a Data correta já formatada.
Faça os testes e veja se seria isto, qq duvida retorne. abraços
Quanto a questão da filtragem é por data(ex: quero todos do dia 20/05/2011) OU entre datas (ex: todos de 20/05/2011 à 22/05/2011 OU faixa de horário em determinada data(ex: todos do dia 20/05/2011 de 11:00 à 13:00).
Observei que se na coluna dos dados "data" eu salvar com data e hora e eliminar a coluna hora, posso pesquisar de determinada data e hora a outra data e hora (ou mesma data e hora diferente) é só trocar:
Código: Selecionar todos
'MontaClausulaWhere entre as DATAS
Private Sub MontaClausulaWhere(ByVal NomeControle As String, ByVal NomeCampo As String, ByRef sqlWhere As String)
If Trim(Me.Controls(NomeControle).Text) <> vbNullString Then
If sqlWhere <> vbNullString Then
sqlWhere = sqlWhere & " AND"
End If
If IsDate(Me.Controls(NomeControle).Text) Then 'Verifica se é Data
Select Case LocEntreDatas
Case 0 'Procura por uma unica Data
sqlWhere = sqlWhere & " (" & NomeCampo & ") = #" & Format(txtDataini, "mm/dd/yyyy") & "#"
Case 1 'Procura entre duas Datas
sqlWhere = sqlWhere & " (" & NomeCampo & ") BETWEEN #" & Format(txtDataini, "mm/dd/yyyy") & "# AND #" & Format(txtDatafim, "mm/dd/yyyy") & "#"
End Select
Else
sqlWhere = sqlWhere & " UCASE(" & NomeCampo & ") LIKE UCASE('%" & Trim(Me.Controls(NomeControle).Text) & "%')"
End If
End If
End Sub
'FIM DATAS
Código: Selecionar todos
'MontaClausulaWhere entre as DATAS
Private Sub MontaClausulaWhere(ByVal NomeControle As String, ByVal NomeCampo As String, ByRef sqlWhere As String)
If Trim(Me.Controls(NomeControle).Text) <> vbNullString Then
If sqlWhere <> vbNullString Then
sqlWhere = sqlWhere & " AND"
End If
If IsDate(Me.Controls(NomeControle).Text) Then 'Verifica se é Data
Select Case LocEntreDatas
Case 0 'Procura por uma unica Data
sqlWhere = sqlWhere & " (" & NomeCampo & ") = #" & Format(txtDataini, "mm/dd/yyyy") & "#"
Case 1 'Procura entre duas Datas
sqlWhere = sqlWhere & " (" & NomeCampo & ") BETWEEN #" & Format(txtDataini, "mm/dd/yyyy hh:mm") & "# AND #" & Format(txtDatafim, "mm/dd/yyyy hh:mm") & "#"
End Select
Else
sqlWhere = sqlWhere & " UCASE(" & NomeCampo & ") LIKE UCASE('%" & Trim(Me.Controls(NomeControle).Text) & "%')"
End If
End If
End Sub
'FIM DATAS
Não sei pq, mas a pesquisa entre datas não filtra por login (sem nenhum selecionado blz!) (se seleciono um ou dois a pesquisa esquece a data de intervalos e mostra dados daquele login em qualquer data).
Se houve erros de portuga foi o sono. Queimei as pestanas mas só esta evolução.
- Mauro Coutinho
- Jedi
- Mensagens: 1561
- Registrado em: Sáb Mar 13, 2010 8:10 pm
- Localização: São José dos Pinhais - Pr
Re: MontaClausulaWhere usando DATAS ?
Ronaldo, de fato se alterar a formatação conforme disse sobre data e hora funciona, este seria um proximo passo se você confirmasse que iria utilizar as Horas tambem, não comentei nada antes pois como eu disse não sabia se iria utilizar os TextBoxs Horas separados, mas valeu pelo seu esforço, é sinal que realmente tem intensão de aprender e não somente ter tudo pronto. Parabens.
Então vamos a algumas considerações,
Na rotina que alterou, não sei se foi o sono, mas no "Case 0" a linha tem de estar com a mesma formatação "mm/dd/yyyy hh:mm", acerte na rotina.
Quanto a questão do Login troque a function PreecheRecordSet pela abaixo:
A questão é somente a ordem das sequencias, Login primeiro depois montamos as outras Clausulas, em alguns testes rapidos aqui deu certo, refaça os testes com mais dados e veja se corre tudo bem.
[]s
Então vamos a algumas considerações,
Na rotina que alterou, não sei se foi o sono, mas no "Case 0" a linha tem de estar com a mesma formatação "mm/dd/yyyy hh:mm", acerte na rotina.
Quanto a questão do Login troque a function PreecheRecordSet pela abaixo:
A questão é somente a ordem das sequencias, Login primeiro depois montamos as outras Clausulas, em alguns testes rapidos aqui deu certo, refaça os testes com mais dados e veja se corre tudo bem.
Código: Selecionar todos
Private Function PreecheRecordSet(ByVal Protocolo As String, _
ByVal Placa As String, _
ByVal Arquivo As String, _
ByVal Obs As String, _
ByVal DataInicio As String, _
ByVal DataFim As String) As Recordset
On Error GoTo TrataErro
Dim conn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sql As String
Dim sqlWhere As String
Dim sqlOrderBy As String
Dim i As Integer
Dim campo As Field
Dim myArray() As Variant
Set conn = New ADODB.Connection
With conn
.Provider = "Microsoft.JET.OLEDB.4.0"
.ConnectionString = "Data Source=" & caminhoArquivoDados & ";Extended Properties=Excel 8.0;"
.Open
End With
sql = "SELECT * FROM [Fornecedores$]"
'Login
For i = 1 To lstLogin.ListCount
'verifica se o item está selecionado
If lstLogin.Selected(i - 1) Then
'Monta a cláusula WHERE com OR
Debug.Print lstLogin.List(i - 1) & " selecionado"
If sqlWhere <> vbNullString Then
sqlWhere = sqlWhere & " OR"
End If
sqlWhere = sqlWhere & " UCASE(Login) LIKE UCASE('%" & Trim(lstLogin.List(i - 1)) & "%')"
End If
Next
'monta a cláusula WHERE
'Protocolo
Call MontaClausulaWhere(txtProtocolo.Name, "Protocolo", sqlWhere)
'Placa
Call MontaClausulaWhere(txtPlaca.Name, "Placa", sqlWhere)
'Arquivo
Call MontaClausulaWhere(txtArquivo.Name, "Arquivo", sqlWhere)
'DATA
Call MontaClausulaWhere(txtDataini.Name, "Data", sqlWhere) 'Coluna DATA
'Obs
Call MontaClausulaWhere(txtObs.Name, "Obs", sqlWhere)
'faz a união da string SQL com a cláusula WHERE
If sqlWhere <> vbNullString Then
sql = sql & " WHERE " & sqlWhere
End If
'faz a união da string SQL com a cláusula ORDER BY
If cboOrdenarPor.ListIndex <> -1 Then
sqlOrderBy = " ORDER BY " & cboOrdenarPor.List(cboOrdenarPor.ListIndex, 0)
'define a direção
Select Case cboDirecao.ListIndex
Case Ascendente
sqlOrderBy = sqlOrderBy & " ASC"
Case Descendente
sqlOrderBy = sqlOrderBy & " DESC"
End Select
'une a query order ao sql
sql = sql & sqlOrderBy
End If
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
With rst
.ActiveConnection = conn
.Open sql, conn, adOpenForwardOnly, _
adLockBatchOptimistic
End With
Set rst.ActiveConnection = Nothing
' Fecha a conexão.
conn.Close
Set PreecheRecordSet = rst
Exit Function
TrataErro:
Set rst = Nothing
End Function
-
- Acabou de chegar
- Mensagens: 5
- Registrado em: Ter Mai 24, 2011 12:30 am
Re: MontaClausulaWhere usando DATAS ?
Grande Professor,Mauro Coutinho escreveu:Ronaldo, de fato se alterar a formatação conforme disse sobre data e hora funciona, este seria um proximo passo se você confirmasse que iria utilizar as Horas tambem, não comentei nada antes pois como eu disse não sabia se iria utilizar os TextBoxs Horas separados, mas valeu pelo seu esforço, é sinal que realmente tem intensão de aprender e não somente ter tudo pronto. Parabens.
Então vamos a algumas considerações,
Na rotina que alterou, não sei se foi o sono, mas no "Case 0" a linha tem de estar com a mesma formatação "mm/dd/yyyy hh:mm", acerte na rotina.
Quanto a questão do Login troque a function PreecheRecordSet pela abaixo:
A questão é somente a ordem das sequencias, Login primeiro depois montamos as outras Clausulas, em alguns testes rapidos aqui deu certo, refaça os testes com mais dados e veja se corre tudo bem.[]sCódigo: Selecionar todos
Private Function PreecheRecordSet(ByVal Protocolo As String, _ ByVal Placa As String, _ ByVal Arquivo As String, _ ByVal Obs As String, _ ByVal DataInicio As String, _ ByVal DataFim As String) As Recordset On Error GoTo TrataErro Dim conn As ADODB.Connection Dim rst As ADODB.Recordset Dim sql As String Dim sqlWhere As String Dim sqlOrderBy As String Dim i As Integer Dim campo As Field Dim myArray() As Variant Set conn = New ADODB.Connection With conn .Provider = "Microsoft.JET.OLEDB.4.0" .ConnectionString = "Data Source=" & caminhoArquivoDados & ";Extended Properties=Excel 8.0;" .Open End With sql = "SELECT * FROM [Fornecedores$]" 'Login For i = 1 To lstLogin.ListCount 'verifica se o item está selecionado If lstLogin.Selected(i - 1) Then 'Monta a cláusula WHERE com OR Debug.Print lstLogin.List(i - 1) & " selecionado" If sqlWhere <> vbNullString Then sqlWhere = sqlWhere & " OR" End If sqlWhere = sqlWhere & " UCASE(Login) LIKE UCASE('%" & Trim(lstLogin.List(i - 1)) & "%')" End If Next 'monta a cláusula WHERE 'Protocolo Call MontaClausulaWhere(txtProtocolo.Name, "Protocolo", sqlWhere) 'Placa Call MontaClausulaWhere(txtPlaca.Name, "Placa", sqlWhere) 'Arquivo Call MontaClausulaWhere(txtArquivo.Name, "Arquivo", sqlWhere) 'DATA Call MontaClausulaWhere(txtDataini.Name, "Data", sqlWhere) 'Coluna DATA 'Obs Call MontaClausulaWhere(txtObs.Name, "Obs", sqlWhere) 'faz a união da string SQL com a cláusula WHERE If sqlWhere <> vbNullString Then sql = sql & " WHERE " & sqlWhere End If 'faz a união da string SQL com a cláusula ORDER BY If cboOrdenarPor.ListIndex <> -1 Then sqlOrderBy = " ORDER BY " & cboOrdenarPor.List(cboOrdenarPor.ListIndex, 0) 'define a direção Select Case cboDirecao.ListIndex Case Ascendente sqlOrderBy = sqlOrderBy & " ASC" Case Descendente sqlOrderBy = sqlOrderBy & " DESC" End Select 'une a query order ao sql sql = sql & sqlOrderBy End If Set rst = New ADODB.Recordset rst.CursorLocation = adUseClient With rst .ActiveConnection = conn .Open sql, conn, adOpenForwardOnly, _ adLockBatchOptimistic End With Set rst.ActiveConnection = Nothing ' Fecha a conexão. conn.Close Set PreecheRecordSet = rst Exit Function TrataErro: Set rst = Nothing End Function
Muito obrigado! Veja se ficou bom. Fiz umas modificações! Não tem mais conflitos. E ficou do jeito que imaginei!
Valeu Muito!!!
- Anexos
-
- Registro de Protocolo_atualizado2.zip
- Meu arquivo atualizado
- (231.04 KiB) Baixado 572 vezes
-
- Colaborador
- Mensagens: 96
- Registrado em: Sáb Nov 26, 2011 1:05 pm
- Localização: Rio Grande da Serra - São Paulo
- Contato:
Re: MontaClausulaWhere usando DATAS ?
Muito bom.
Estou tentando adaptar às minhas necessidades.
Abraços
Estou tentando adaptar às minhas necessidades.
Abraços
Ronaldo Filho escreveu:Grande Professor,Mauro Coutinho escreveu:Ronaldo, de fato se alterar a formatação conforme disse sobre data e hora funciona, este seria um proximo passo se você confirmasse que iria utilizar as Horas tambem, não comentei nada antes pois como eu disse não sabia se iria utilizar os TextBoxs Horas separados, mas valeu pelo seu esforço, é sinal que realmente tem intensão de aprender e não somente ter tudo pronto. Parabens.
Então vamos a algumas considerações,
Na rotina que alterou, não sei se foi o sono, mas no "Case 0" a linha tem de estar com a mesma formatação "mm/dd/yyyy hh:mm", acerte na rotina.
Quanto a questão do Login troque a function PreecheRecordSet pela abaixo:
A questão é somente a ordem das sequencias, Login primeiro depois montamos as outras Clausulas, em alguns testes rapidos aqui deu certo, refaça os testes com mais dados e veja se corre tudo bem.[]sCódigo: Selecionar todos
Private Function PreecheRecordSet(ByVal Protocolo As String, _ ByVal Placa As String, _ ByVal Arquivo As String, _ ByVal Obs As String, _ ByVal DataInicio As String, _ ByVal DataFim As String) As Recordset On Error GoTo TrataErro Dim conn As ADODB.Connection Dim rst As ADODB.Recordset Dim sql As String Dim sqlWhere As String Dim sqlOrderBy As String Dim i As Integer Dim campo As Field Dim myArray() As Variant Set conn = New ADODB.Connection With conn .Provider = "Microsoft.JET.OLEDB.4.0" .ConnectionString = "Data Source=" & caminhoArquivoDados & ";Extended Properties=Excel 8.0;" .Open End With sql = "SELECT * FROM [Fornecedores$]" 'Login For i = 1 To lstLogin.ListCount 'verifica se o item está selecionado If lstLogin.Selected(i - 1) Then 'Monta a cláusula WHERE com OR Debug.Print lstLogin.List(i - 1) & " selecionado" If sqlWhere <> vbNullString Then sqlWhere = sqlWhere & " OR" End If sqlWhere = sqlWhere & " UCASE(Login) LIKE UCASE('%" & Trim(lstLogin.List(i - 1)) & "%')" End If Next 'monta a cláusula WHERE 'Protocolo Call MontaClausulaWhere(txtProtocolo.Name, "Protocolo", sqlWhere) 'Placa Call MontaClausulaWhere(txtPlaca.Name, "Placa", sqlWhere) 'Arquivo Call MontaClausulaWhere(txtArquivo.Name, "Arquivo", sqlWhere) 'DATA Call MontaClausulaWhere(txtDataini.Name, "Data", sqlWhere) 'Coluna DATA 'Obs Call MontaClausulaWhere(txtObs.Name, "Obs", sqlWhere) 'faz a união da string SQL com a cláusula WHERE If sqlWhere <> vbNullString Then sql = sql & " WHERE " & sqlWhere End If 'faz a união da string SQL com a cláusula ORDER BY If cboOrdenarPor.ListIndex <> -1 Then sqlOrderBy = " ORDER BY " & cboOrdenarPor.List(cboOrdenarPor.ListIndex, 0) 'define a direção Select Case cboDirecao.ListIndex Case Ascendente sqlOrderBy = sqlOrderBy & " ASC" Case Descendente sqlOrderBy = sqlOrderBy & " DESC" End Select 'une a query order ao sql sql = sql & sqlOrderBy End If Set rst = New ADODB.Recordset rst.CursorLocation = adUseClient With rst .ActiveConnection = conn .Open sql, conn, adOpenForwardOnly, _ adLockBatchOptimistic End With Set rst.ActiveConnection = Nothing ' Fecha a conexão. conn.Close Set PreecheRecordSet = rst Exit Function TrataErro: Set rst = Nothing End Function
Muito obrigado! Veja se ficou bom. Fiz umas modificações! Não tem mais conflitos. E ficou do jeito que imaginei!
Valeu Muito!!!
-
- Colaborador
- Mensagens: 96
- Registrado em: Sáb Nov 26, 2011 1:05 pm
- Localização: Rio Grande da Serra - São Paulo
- Contato:
Re: MontaClausulaWhere usando DATAS ?
Salve, salve Tomás.
Estou precisando de um help e de sua expertise...
Adaptei a idiea do Mauro e do nosso amigo Ronaldo Filho ao meu projeto de entrevista do RH.
Fiz todas as adaptações nocódigo e o mesmo funciona em parte, por exemplo tenho datas do dia 01/11/2012 até ao dia 11/11/2012 e depois datas no mês Dezembro.
Quando seleciono um intervalo de 01 a 11 de Novembro a pesquisa sai certa, mas por exemplo se faço a mesma pesquisa de 01 a 12 de Novembro aí aparece uma data do inicio do mês de Dezembro.
Já refiz o código uma série de vezes e o problema continua.
Estou deixando em anexo o trabalho para que possa dar uma olhada no código para ver onde estou errando, pois devo estar deixando passar alguma coisa.
Desde já agradeço pela ajuda.
Abraços
Estou precisando de um help e de sua expertise...
Adaptei a idiea do Mauro e do nosso amigo Ronaldo Filho ao meu projeto de entrevista do RH.
Fiz todas as adaptações nocódigo e o mesmo funciona em parte, por exemplo tenho datas do dia 01/11/2012 até ao dia 11/11/2012 e depois datas no mês Dezembro.
Quando seleciono um intervalo de 01 a 11 de Novembro a pesquisa sai certa, mas por exemplo se faço a mesma pesquisa de 01 a 12 de Novembro aí aparece uma data do inicio do mês de Dezembro.
Já refiz o código uma série de vezes e o problema continua.
Estou deixando em anexo o trabalho para que possa dar uma olhada no código para ver onde estou errando, pois devo estar deixando passar alguma coisa.
Desde já agradeço pela ajuda.
Abraços
webmaster escreveu:Mauro,
Sem problemas. Nem eu encontrei.... Só lembrei que já tinha falado sobre.
O que acha dessa sugestão de melhoria?
Assim, não fica para um controle específico, e sim para qualquer um que contenha uma data válida. Veja se funciona.Código: Selecionar todos
Private Sub MontaClausulaWhere(ByVal NomeControle As String, ByVal NomeCampo As String, ByRef sqlWhere As String) If Trim(Me.Controls(NomeControle).Text) <> vbNullString Then If sqlWhere <> vbNullString Then sqlWhere = sqlWhere & " AND" End If If IsDate(Me.Controls(NomeControle).Text) Then sqlWhere = sqlWhere & " (" & NomeCampo & ") = #" & Format(txtDataIni, "m/d/yyyy") & "#" Else sqlWhere = sqlWhere & " UCASE(" & NomeCampo & ") LIKE UCASE('%" & Trim(Me.Controls(NomeControle).Text) & "%')" End If End If End Sub
Abraços
- Anexos
-
- Macro - RH - BDAccess.rar
- Entrevista RH
- (361.11 KiB) Baixado 481 vezes
Re: MontaClausulaWhere usando DATAS ?
Henry,
Desculpe a demora. A coisa está intensa por aqui. Não consegui executar o projeto. Dá erro de automação.
De toda forma, Datas em programação seguem o formato norte-americano. Antes de continuar, teste como você está coletando as datas e os valores delas, principalmente com as funções Month e Day. É um incômodo enorme, mas é uma das desvantagens do formato tupiniquim.
Do que vejo, apesar de receber as datas no formato brasileiro no formulário, no momento em que ela passar para o código, considerar o formato americano. É uma visão. De repente ajuda.
Abraços
Desculpe a demora. A coisa está intensa por aqui. Não consegui executar o projeto. Dá erro de automação.
De toda forma, Datas em programação seguem o formato norte-americano. Antes de continuar, teste como você está coletando as datas e os valores delas, principalmente com as funções Month e Day. É um incômodo enorme, mas é uma das desvantagens do formato tupiniquim.
Do que vejo, apesar de receber as datas no formato brasileiro no formulário, no momento em que ela passar para o código, considerar o formato americano. É uma visão. De repente ajuda.
Abraços