EXPRESSAO SQL NAO RETORNA DADOS
Ola pessoal.. Não consigo percerber o q ta errado na expressão q eu uso pra alimentar um msflexgrid...
to usando assim:
to usando assim:
Sub Mostra_Detalhes(mCodigo as string)
Dim mSQL as string
Dim Detalhes as Recordset
mSQL = "SELECT * FROM pedidos_detalhes WHERE codigo_pedido = " & mCodigo
SET Detalhes = BancoDados.Openrecordset(mSQL, dbOpendynaset)
(...)
Essa consulta ta retornando apenas 1 registro mesmo qdo varios registros da tabela pedidos_detalhes atendem ao parametro "mCodigo"
Detalhe, todas as consultas do meu sistema q usam essa estrutura estão dando o mesmo erro..
Já testei varias possibilidades para resolver o problema, porem sem sucesso..
Será q alguem tem uma ideia?
tenta colocar isso...
[/c]
[c]Sub Mostra_Detalhes(mCodigo as string)
Dim mSQL as string
Dim Detalhes as Recordset
mSQL = "SELECT * FROM pedidos_detalhes WHERE codigo_pedido = " & mCodigo
SET Detalhes = BancoDados.Openrecordset(mSQL, dbOpendynaset)
if detalhes.recordcount > 0 then
detalhes.movelast
detalhes.movefirst
else
msgbox "Nenhum registro encontrado"
exit sub
endif
[/c]
Percebi que o mCodigo é uma String (mCodigo as string), então tenta assim
mSQL = "SELECT * FROM pedidos_detalhes WHERE codigo_pedido = '" & mCodigo & "'"
ou declara ele como integer dependendo de como está na base de dados...
Falow...
mSQL = "SELECT * FROM pedidos_detalhes WHERE codigo_pedido = '" & mCodigo & "'"
ou declara ele como integer dependendo de como está na base de dados...
Falow...
ja havia tentado esse possibilidade... o estranho e q tava funfando normalmente e de repente começou a dar esse erro. Ja tentei, para efeito de teste, abrir a tabela inteira...
Set Detalhes = BancoDados.openrecordset("pedidos_detalhes, dbopendynaset)
e ainda assim continua retornando apenas um registro, so volta a mostrar todos os registros qdo mudo a opção pra "dbopentable"...
muito esquisito...
Set Detalhes = BancoDados.openrecordset("pedidos_detalhes, dbopendynaset)
e ainda assim continua retornando apenas um registro, so volta a mostrar todos os registros qdo mudo a opção pra "dbopentable"...
muito esquisito...
vc tentou o que eu coloquei?
depois que vc abriu o rs, da um rs.movelast e depois um rs.movefirst..
eu tenho esse mesmo problema e consigo resolver com esses comandos.
depois que vc abriu o rs, da um rs.movelast e depois um rs.movefirst..
eu tenho esse mesmo problema e consigo resolver com esses comandos.
HUGOSSOUZA, cara.. valeu pela atenção, mas como mencionei, ja tentei varias possibilidades, inclusive essa, o estranho e q essa mesma rotina tava funfando normalmente, retornado os dados direitiho, e de repente começou a dar esse erro.. o tipo do campo "codigo_pedido" e inteiro longo e ja tentei assim:
mSQL = "SELECT * FROM pedidos_detalhes WHERE codigo_pedido = " & clng(mCodigo)e, claro, sem sucesso...tbm ja criei um indice exclusivo, chave primaria, exclui o relacionamento da tabela e nd deu certo... ta dificil..
mSQL = "SELECT * FROM pedidos_detalhes WHERE codigo_pedido = " & clng(mCodigo)e, claro, sem sucesso...tbm ja criei um indice exclusivo, chave primaria, exclui o relacionamento da tabela e nd deu certo... ta dificil..
criei um novo projeto pra testar e usei a mesma expressão, e retornou os dados direitinho... o problema ta no meu formulario... so q nao consigo encontrar..
Verifique se em algum outro lugar do seu form vc utiliza o recordset Detalhes...
isso pode influenciar!
isso pode influenciar!
Voce pode continuar com esta ideia que voce comecou. Continue com este formulario que voce criou colocando os controles do formulario que nao esta funcionando. Ate voce colocar o controle ou o codigo que esta dando erro. Da um trabalhao mas comigo as vezes funciona.
vou verificar a hipotese q o MARCELOHF levantou... tbm penso q pode ser por ai o problema...
Tópico encerrado , respostas não são mais permitidas