FIND,FILTER E INTERVALOS

USUARIO.EXCLUIDOS 06/05/2006 12:06:46
#145304
Estou fazendo um programa que precisa de fazer uma pesquisa em um intervalo de duas datas. Sempre que vou fazer uma pesquisa em uma tabela eu faço utilizando o "Find" e o "Filter" e jogo os dados em um Datagrid. tentei utilizar o mesmo metodo na pesquisa do intervalo. fiz da seguinte forma:



Dim per1 As Date
Dim per2 As Date

per1 = Format(txtdata1.Text, "dd/mm/yyyy")
per2 = Format(txtdata2.Text, "dd/mm/yyyy")

hist.Find "Data between #" & per1 & "# and #" & per2 & "# "
hist.Filter = "Data between between #" & per1 & "# and #" & per2 & "# "

preenchedatagrid



Sendo que da o seguinte erro:


Run-Time error '3001':

Os arqgumentos são incorretos, estão fora do intevalo aceitavel ou estão em conflito


e o Debug marca a linha do "Filter".

Ja vi no VBmania um artigo falando sobre pesquisas utilizando o "And" no "Find" eu o utilizo em meus softwares mas não consegui inplemetalo no metodo "Filter". Não se tem logica mas tentei.

Enfim. Quem tiver alguma ideia pra me ajudar posta alguma coisa ae =D

vlw pela atenção ae!

flw
USUARIO.EXCLUIDOS 06/05/2006 12:09:22
#145305
Ignorem o "Between Between" na linha do Filter. Tentei fazer a pesquisa sem esse erro e deu a mesma coisa! =]
USUARIO.EXCLUIDOS 06/05/2006 12:45:21
#145309
Se vc estiver usando DAO

Set T1=db.openRecordset("Select * From SuaTabela Where Data1 >=DateValue('" & Texto1 & "') and Data <=DateValue('" Data2 & "')")

Do While Not T1.EOF
preenche o grid
t1.MoveNext
Loop
T1.Close

Com ADO funciona do mesmo jeito
USUARIO.EXCLUIDOS 06/05/2006 17:00:02
#145333
Tente assim:

Dim per1 As Date
Dim per2 As Date

per1 = Format(txtdata1.Text, "dd/mm/yyyy")
per2 = Format(txtdata2.Text, "dd/mm/yyyy")

If hist.State = 1 Then hist.Close
hist.Open "SELECT CAMPO1, CAMPO2, ... FROM TABELA WHERE " & _
"DATA BETWEEN #" & per! & "# AND #" & per@ & "# ", cn

preenchedatagrid


Adapte o código à s suas necessidades, e qualquer dúvida volte a postar...
USUARIO.EXCLUIDOS 06/05/2006 20:53:09
#145349
Este codigo funciona perfeitamente... eu ate o utilizava... mas o problema é que se o usuario tiver acabado de alterar algum dado diretamente no DataGrid e em seguida ele for fazer a pesquisa utilizando o hist.Close e hist.Open ai ele da o seguinter erro:


Run-Time erro '3219':

Operação não permitida nesse contexto.


Existe alguma propriedade de uma tabela pra que se ela tiver acabado de ser alterada nao poder fazer a pesquisa... ou então alguma outra solução.

Valeu ae pela atenção

flw! =D
Tópico encerrado , respostas não são mais permitidas