ADO FILTRAR DATA PARA DATAREPORT
Uso relatório DataReport sem DataEviorment...
Gostaria que ao digitar a data em txtData (##/##/#### - 11/06/2010), fosse filtrada e somente os registros com a data referida, fosse jogado para o relatório...
Acontece que ele só avisa que nao está encontrando o registro com a data, sendo que o registro está la. (Nenhum registro encontrado com o perÃodo informado.)
Vou postar o codigo que uso, e por favor, ajudem a achar o erro;
Dim objRS As ADODB.Recordset
If MD.RecordCount = 0 Then
MsgBox [Ô]Nenhum registro encontrado para impressão[Ô], vbInformation, [Ô]JusSoft[Ô]
Exit Sub
Else
Set objRS = objBD.Execute([Ô]SELECT * FROM MPDevolucao where DataDevolucao like [ô][Ô] & txtDevolucao.Text & [Ô]*[ô] order by Codigo[Ô])
If objRS.EOF = False Then
[ô]Define o DataSource do relatório
Set drpPCMandados.DataSource = objRS
[ô]Mostra o relatório
MsgBox [Ô]Relatório gerado com sucesso. Ordenado por Código.[Ô], vbInformation, [Ô]JusSoft[Ô]
drpPCMandados.Show
drpPCMandados.SetFocus
Else
MsgBox [Ô]Nenhum registro encontrado com o perÃodo informado.[Ô], vbInformation, [Ô]JusSoft[Ô]
Exit Sub
End If
End If
agradeço...
Gostaria que ao digitar a data em txtData (##/##/#### - 11/06/2010), fosse filtrada e somente os registros com a data referida, fosse jogado para o relatório...
Acontece que ele só avisa que nao está encontrando o registro com a data, sendo que o registro está la. (Nenhum registro encontrado com o perÃodo informado.)
Vou postar o codigo que uso, e por favor, ajudem a achar o erro;
Dim objRS As ADODB.Recordset
If MD.RecordCount = 0 Then
MsgBox [Ô]Nenhum registro encontrado para impressão[Ô], vbInformation, [Ô]JusSoft[Ô]
Exit Sub
Else
Set objRS = objBD.Execute([Ô]SELECT * FROM MPDevolucao where DataDevolucao like [ô][Ô] & txtDevolucao.Text & [Ô]*[ô] order by Codigo[Ô])
If objRS.EOF = False Then
[ô]Define o DataSource do relatório
Set drpPCMandados.DataSource = objRS
[ô]Mostra o relatório
MsgBox [Ô]Relatório gerado com sucesso. Ordenado por Código.[Ô], vbInformation, [Ô]JusSoft[Ô]
drpPCMandados.Show
drpPCMandados.SetFocus
Else
MsgBox [Ô]Nenhum registro encontrado com o perÃodo informado.[Ô], vbInformation, [Ô]JusSoft[Ô]
Exit Sub
End If
End If
agradeço...
Amigo, tente usar
Tira o LIKE e coloca = sem apostrofe
Obs o campo TXTDEVOLUÇÃO for data precisa formatar de acordo com o banco YYYY/MM/DD
Se for periodo DE ATé
Tira o LIKE e coloca = sem apostrofe
Obs o campo TXTDEVOLUÇÃO for data precisa formatar de acordo com o banco YYYY/MM/DD
Set objRS = objBD.Execute([Ô]SELECT * FROM MPDevolucao where DataDevolucao = [Ô] & txtDevolucao.Text & [Ô] order by Codigo[Ô])
Se for periodo DE ATé
[Ô]SELECT tbl_9828.* From tbl_9828 WHERE (((tbl_9828.MinhaData) Between #[Ô] & Format(Me.mask1.Text, [Ô]mm/dd/yy[Ô]) & [Ô]# And #[Ô] & Format(Me.mask2.Text, [Ô]mm/dd/yy[Ô]) & [Ô]#));[Ô]
Caro amigo... coloquei o código e deu o mesmo aviso: MsgBox [Ô]Nenhum registro encontrado com o perÃodo informado.[Ô], vbInformation, [Ô]JusSoft[Ô]
Não é perÃdo [Ô]DE ATé[Ô]... é perÃodo exato... em outras palavras, serão filtradas todos os registros com aquela data digitada (formato DD/MM/YYYY).
Estou usando Banco de Dados Access, VB6...
Não estou entendendo... os outros formulários funciona, mas este não.. e olha que eu troquei apenas o campo de busca...
onde está o erro???
Não é perÃdo [Ô]DE ATé[Ô]... é perÃodo exato... em outras palavras, serão filtradas todos os registros com aquela data digitada (formato DD/MM/YYYY).
Estou usando Banco de Dados Access, VB6...
Não estou entendendo... os outros formulários funciona, mas este não.. e olha que eu troquei apenas o campo de busca...
onde está o erro???
Verifica o formato do campo que esta no BD.
testa o rotina com outras tabelas da sua base, posta seu banco somente com a tabela em questão com meia duzia de dados.
testa o rotina com outras tabelas da sua base, posta seu banco somente com a tabela em questão com meia duzia de dados.
O carater do campo é texto.. mas está certo pq nao defino a data obrigatoriamente como data..
eu estou usando o mesmo campo, comparando entre datas e está dando certo.. agora com apenas uma data está dando pau...
nao estou entendendo nada...
eu estou usando o mesmo campo, comparando entre datas e está dando certo.. agora com apenas uma data está dando pau...
nao estou entendendo nada...
Ajudaaaaaa
adriano o campo precisa ser do tipo DATA/HORA no banco.
se vc usa um BANCO ACCESS
é assim o formato de ve ser #mm/dd/yyyy#
se o banco for MySQL ou SQLserver
o formato é [ô]YYYY-MM-DD[ô]
assim
veja bem as consultas acima funcionarão apenas quando vc digitar toda data no campo e der um enter, e não como deseja ou seja preencher ao ir digitando, pois se trata de data.
espero ter ajudado
se vc usa um BANCO ACCESS
é assim o formato de ve ser #mm/dd/yyyy#
Set objRS = objBD.Execute([Ô]SELECT * FROM MPDevolucao where DataDevolucao = #[Ô] & Format(txtDevolucao.Text,[Ô]mm/dd/yyyy[Ô]) & [Ô]# order by Codigo[Ô])
se o banco for MySQL ou SQLserver
o formato é [ô]YYYY-MM-DD[ô]
assim
Set objRS = objBD.Execute([Ô]SELECT * FROM MPDevolucao where DataDevolucao = [ô][Ô] & Format(txtDevolucao.Text,[Ô]YYYY-MM-DD[Ô]) & [Ô][ô] order by Codigo[Ô])
veja bem as consultas acima funcionarão apenas quando vc digitar toda data no campo e der um enter, e não como deseja ou seja preencher ao ir digitando, pois se trata de data.
espero ter ajudado
Tudo bem... sei que será após o Enter...
mas me explica uma coisa..
no momento em que criei a tabela (MPDevolucao) e o campo DataDevolucao, eu não a defini como data, eu a defini como texto...
essa máscara funcionará mesmos sendo em um campo definido como texto, estado os dados dispostos em dd/mm/yyyy?
mas me explica uma coisa..
no momento em que criei a tabela (MPDevolucao) e o campo DataDevolucao, eu não a defini como data, eu a defini como texto...
essa máscara funcionará mesmos sendo em um campo definido como texto, estado os dados dispostos em dd/mm/yyyy?
Tentei e não deu certo, não filtrou!
Não entendo, está tudo certo....
Não entendo, está tudo certo....
CONSEGUIIIII
SOLUÇÃO ENCONTRADA EM WWW.MACORATTI.NET
POSTAREI COMO FICOU O CÓDIGO, CASO ALGUéM VENHA PESQUISAR NO FÓRUM
Dim objRS As ADODB.Recordset
If MD.RecordCount = 0 Then
MsgBox [Ô]Nenhum registro encontrado para impressão[Ô], vbInformation, [Ô]JusSoft[Ô]
Exit Sub
Else
Set objRS = objBD.Execute([Ô]select * from MPDevolucao where DataDevolucao like [ô]%[Ô] & txtDevolucao.Text & [Ô]%[ô][Ô])
If objRS.EOF = False Then
[ô]Define o DataSource do relatório
Set drpPCMandados.DataSource = objRS
[ô]Mostra o relatório
MsgBox [Ô]Relatório gerado com sucesso. Ordenado por Nome.[Ô], vbInformation, [Ô]JusSoft[Ô]
drpPCMandados.Show
drpPCMandados.SetFocus
Else
MsgBox [Ô]Nenhum registro encontrado com o perÃodo informado.[Ô], vbInformation, [Ô]JusSoft[Ô]
Exit Sub
End If
End If
GRATO A TODOS PELA BOA VONTADE E ESFORÇO EM ME AJUDAR...
SOLUÇÃO ENCONTRADA EM WWW.MACORATTI.NET
POSTAREI COMO FICOU O CÓDIGO, CASO ALGUéM VENHA PESQUISAR NO FÓRUM
Dim objRS As ADODB.Recordset
If MD.RecordCount = 0 Then
MsgBox [Ô]Nenhum registro encontrado para impressão[Ô], vbInformation, [Ô]JusSoft[Ô]
Exit Sub
Else
Set objRS = objBD.Execute([Ô]select * from MPDevolucao where DataDevolucao like [ô]%[Ô] & txtDevolucao.Text & [Ô]%[ô][Ô])
If objRS.EOF = False Then
[ô]Define o DataSource do relatório
Set drpPCMandados.DataSource = objRS
[ô]Mostra o relatório
MsgBox [Ô]Relatório gerado com sucesso. Ordenado por Nome.[Ô], vbInformation, [Ô]JusSoft[Ô]
drpPCMandados.Show
drpPCMandados.SetFocus
Else
MsgBox [Ô]Nenhum registro encontrado com o perÃodo informado.[Ô], vbInformation, [Ô]JusSoft[Ô]
Exit Sub
End If
End If
GRATO A TODOS PELA BOA VONTADE E ESFORÇO EM ME AJUDAR...
Tópico encerrado , respostas não são mais permitidas