CONSULTA SQL SIMPLES, ERRO ESTRANHO

FUTURA 24/11/2006 12:47:05
#186152
analisem a consulta sql abaixo, acho que é a mais simples que tenho no sistema, mas qdo ativo a linha que esta comentada, "and local bla bla.....,
gera erro na abertura do RS, o campo é texto mesmo, e o tipo de erro não conhecia, sera que pode ser algum problema na tabela ???, mas se não usar esta linha vai normal, o erro é o seguinte:

runtime error'-2147467259 (80004005)'method 'open' of object '_recordset' failed.

e o erro ocorre justamente la linha do rs.open ........


sql = " select * from cto "
sql = sql & " where data BETWEEN "
sql = sql & Chr(35) & Format(dt1.Value, "mm/dd/yy") & Chr(35) & " AND " & Chr(35) & Format(dt2.Value, "mm/dd/yy") & Chr(35)

'sql = sql & " and local = '" & txtlocal.Text & "'"

Set Rs = New ADODB.Recordset
Rs.CursorLocation = adUseClient
Rs.Open sql, Cnn, adOpenForwardOnly, adLockReadOnly
Rs.EOF Then

LUIS.FLAVIO 24/11/2006 13:26:40
#186156
Amigo tente dessa forma.

Set Rs = New ADODB.Recordset
Rs.CursorLocation = adUseClient
Rs.Open sql, Cnn, adOpenForwardOnly, adLockReadOnly

sql = " select * from cto where data BETWEEN Format(dt1.Value, "mm/dd/yy") AND Format(dt2.Value, "mm/dd/yy") and local = '" & txtlocal.Text & "'"
USUARIO.EXCLUIDOS 24/11/2006 13:34:27
#186158
Acho que o problema é no MDAC... será que reinstalar não resolveria? Tentou em outro micro?
FUTURA 24/11/2006 14:15:51
#186169
tentei em outro, mesma coisa, e a sintaxe do luis da erro. estranho mesmo, outras consultas, e esta mesma sem a referida linha, vai normal.
F001E 24/11/2006 15:35:42
#186186
tenta mudar a ordem no Select....coloca o "and local" antes de "data BETWEEN" e faz o teste.....e outra coisa....testa tbm só com o "and local" sem o "data BETWEEN" e vê se retorna alguma coisa.....
USUARIO.EXCLUIDOS 24/11/2006 15:38:37
#186189
faz primeiramente a consulta em algum modo grafico do seu SGBD, ae vai arrumando por lá... é mais facil corrigir o erro por lá...pois ele fala exatamente o qe está errado
FUTURA 24/11/2006 16:03:12
#186194
ja havia testado só com o and local, CLARO TROCANDO POR WHERE..... e erro na certa. agora olhem só, desconfiei que desta palavra local, que é o nome de uma campo na tabela, e BOMMMMMMMMMMMMMMBA, "LOCAL", deve ser reservada pelo vb ou ado, sei la que merd......., mudei o nome do campo para loca e tudo certo, o duro é perder 1 dia de trabalho nisto, também estes erros idiotas que o ado retorna, nunca ajudam em nada. Mas fica ai, pra galera esta dica. obrigado a todos que tentaram ajudar.
USUARIO.EXCLUIDOS 25/11/2006 09:48:43
#186214
Nem precisa mudar no BD, é só usar assim:

sql = " select * from cto "
sql = sql & " where data BETWEEN "
sql = sql & Chr(35) & Format(dt1.Value, "mm/dd/yy") & Chr(35) & " AND " & Chr(35) & Format(dt2.Value, "mm/dd/yy") & Chr(35)

sql = sql & " and [local] = '" & txtlocal.Text & "'"

Set Rs = New ADODB.Recordset
Rs.CursorLocation = adUseClient
Rs.Open sql, Cnn, adOpenForwardOnly, adLockReadOnly
Rs.EOF Then


Com a palavra entre colchetes...flw
USUARIO.EXCLUIDOS 25/11/2006 14:50:47
#186241
também aconteceu comigo quando eu tinha em uma tabela um campo com o nome DATA, é dose ...[S20]
Tópico encerrado , respostas não são mais permitidas