ONDE ESTA O ERRO?
Estou tentando filtrar dados entre datas....
Utilizo banco de dados Access 97.
O campo a ser utilizado como fonte de filtro é o DataAudiencia.
No Banco de Dados Access 97, ele está definido como Data/hora e existe uma máscara dentro do banco de dados, elaborada pelo próprio Access que fica assim: 99/99/0000;0;_
No meu programa faço com que a data seja cadastrada no formato [Ô]DD/MM/YYYY[Ô]....
O programa me dá a mensagem, criada por mim, que não existem dados para o perÃodo selecionado; sendo que existem e estão cadastrados....
Dim objRS As ADODB.Recordset
If MA.RecordCount = 0 Then
MsgBox [Ô]Não existem registros cadastrados para serem consultados.[Ô], vbCritical, [Ô]JusSoft[Ô]
Exit Sub
Else
Set objRS = objBD.Execute([Ô]SELECT * FROM Mandados WHERE DataAudiencia BETWEEN #[Ô] & txtDtInicial.Text & [Ô]# AND #[Ô] & txtDtFinal.Text & [Ô]#[Ô])
If objRS.EOF = False Then
[ô]Define o DataSource do relatório
Set drpMPosse.DataSource = objRS
[ô]Mostra o relatório
MsgBox [Ô]Relatório gerado com sucesso. Ordenado por Nome.[Ô], vbInformation, [Ô]JusSoft[Ô]
drpMPosse.Sections([Ô]Section4[Ô]).Controls([Ô]lblOficial[Ô]).Caption = RO!NomeOficial
drpMPosse.Sections([Ô]Section4[Ô]).Controls([Ô]lblComarca[Ô]).Caption = RO!Comarca
drpMPosse.Sections([Ô]Section4[Ô]).Controls([Ô]lblMatricula[Ô]).Caption = RO!Matricula
drpMPosse.Show
drpMPosse.SetFocus
Unload Me
frmMandados.Show
Else
MsgBox [Ô]Nenhum registro encontrado com o perÃodo informado.[Ô], vbCritical, [Ô]JusSoft[Ô]
Exit Sub
End If
End If
Onde está o erro?
Utilizo banco de dados Access 97.
O campo a ser utilizado como fonte de filtro é o DataAudiencia.
No Banco de Dados Access 97, ele está definido como Data/hora e existe uma máscara dentro do banco de dados, elaborada pelo próprio Access que fica assim: 99/99/0000;0;_
No meu programa faço com que a data seja cadastrada no formato [Ô]DD/MM/YYYY[Ô]....
O programa me dá a mensagem, criada por mim, que não existem dados para o perÃodo selecionado; sendo que existem e estão cadastrados....
Dim objRS As ADODB.Recordset
If MA.RecordCount = 0 Then
MsgBox [Ô]Não existem registros cadastrados para serem consultados.[Ô], vbCritical, [Ô]JusSoft[Ô]
Exit Sub
Else
Set objRS = objBD.Execute([Ô]SELECT * FROM Mandados WHERE DataAudiencia BETWEEN #[Ô] & txtDtInicial.Text & [Ô]# AND #[Ô] & txtDtFinal.Text & [Ô]#[Ô])
If objRS.EOF = False Then
[ô]Define o DataSource do relatório
Set drpMPosse.DataSource = objRS
[ô]Mostra o relatório
MsgBox [Ô]Relatório gerado com sucesso. Ordenado por Nome.[Ô], vbInformation, [Ô]JusSoft[Ô]
drpMPosse.Sections([Ô]Section4[Ô]).Controls([Ô]lblOficial[Ô]).Caption = RO!NomeOficial
drpMPosse.Sections([Ô]Section4[Ô]).Controls([Ô]lblComarca[Ô]).Caption = RO!Comarca
drpMPosse.Sections([Ô]Section4[Ô]).Controls([Ô]lblMatricula[Ô]).Caption = RO!Matricula
drpMPosse.Show
drpMPosse.SetFocus
Unload Me
frmMandados.Show
Else
MsgBox [Ô]Nenhum registro encontrado com o perÃodo informado.[Ô], vbCritical, [Ô]JusSoft[Ô]
Exit Sub
End If
End If
Onde está o erro?
Deu erro ... ele converteu os dados da data para um formato inválido ao do banco de dados....Máscara utilizada dentro do banco de dados em modo de estrutura...
99/99/0000;0;_
99/99/0000;0;_
Desculpa Parceiro... você estava certo.. uma aspas que digitei errado que gerou o erro.
Muito Obrigadoo...
Segue o Código caso alguém tenha alguma dúvida...
Set objRS = objBD.Execute([Ô]SELECT * FROM Mandados WHERE DataAudiencia between #[Ô] & Format(txtDtInicial, [Ô]yyyy/mm/dd[Ô]) & [Ô]# And #[Ô] & Format(txtDtFinal, [Ô]yyyy/mm/dd[Ô]) & [Ô]# ORDER BY Nome[Ô])
Muito Obrigadoo...
Segue o Código caso alguém tenha alguma dúvida...
Set objRS = objBD.Execute([Ô]SELECT * FROM Mandados WHERE DataAudiencia between #[Ô] & Format(txtDtInicial, [Ô]yyyy/mm/dd[Ô]) & [Ô]# And #[Ô] & Format(txtDtFinal, [Ô]yyyy/mm/dd[Ô]) & [Ô]# ORDER BY Nome[Ô])
O problema pode estar aqui, o seu código está sem as aspas simples ( [ô] ) na data.
SEU CÓDIGO:
Set objRS = objBD.Execute([Ô]SELECT * FROM Mandados WHERE DataAudiencia BETWEEN #[Ô] & txtDtInicial.Text & [Ô]# AND #[Ô] & txtDtFinal.Text & [Ô]#[Ô])
CÓDIGO ALTERADO:
Set objRS = objBD.Execute([Ô]SELECT * FROM Mandados WHERE DataAudiencia BETWEEN # [ô] [Ô] & txtDtInicial.Text & [Ô] [ô] # AND # [ô] [Ô] & txtDtFinal.Text & [Ô] [ô] #[Ô])
[]'s
SEU CÓDIGO:
Set objRS = objBD.Execute([Ô]SELECT * FROM Mandados WHERE DataAudiencia BETWEEN #[Ô] & txtDtInicial.Text & [Ô]# AND #[Ô] & txtDtFinal.Text & [Ô]#[Ô])
CÓDIGO ALTERADO:
Set objRS = objBD.Execute([Ô]SELECT * FROM Mandados WHERE DataAudiencia BETWEEN # [ô] [Ô] & txtDtInicial.Text & [Ô] [ô] # AND # [ô] [Ô] & txtDtFinal.Text & [Ô] [ô] #[Ô])
[]'s
Tópico encerrado , respostas não são mais permitidas