Usuário com melhor resposta
dificuldade em carregar msflexgrid no vb6

Pergunta
-
Caros amigos, estou com problema em carregar os dados em uma msflexgrid do VB6, a rotina só está trazendo o ultimo registro, alguem pode me ajudar, agradeço desde já a atenção. Segue rotina.
Private Sub CmdLocalizar_Click() vlrmov = 0 saldomov = 0 gridMov.Cols = 7 gridMov.Row = 0 gridMov.Col = 0 gridMov.Text = "Empresa" gridMov.ColWidth(0) = 800 gridMov.Col = 1 gridMov.Text = "Documento" gridMov.ColWidth(1) = 800 gridMov.Col = 2 gridMov.Text = "Emissao" gridMov.ColWidth(2) = 1000 gridMov.Col = 3 gridMov.Text = "Vencimento" gridMov.ColWidth(3) = 1000 gridMov.Col = 4 gridMov.Text = "Historico" gridMov.ColWidth(4) = 5000 gridMov.Col = 5 gridMov.Text = "Valor" gridMov.ColWidth(5) = 1200 gridMov.Col = 6 gridMov.Text = "Status" gridMov.ColWidth(6) = 1000 I = 1 SQL = "" SQL = "select cod_banco,num_saldomov,num_saldobco from Tb_bancos " & _ "where txt_banco = '" & CboBanco.Text & "' " & _ "and txt_conta = " & CboConta.Text & "" Set conecta.rs = conecta.cn1.Execute(SQL) codigobco = conecta.rs!cod_banco saldomov = conecta.rs!num_saldomov saldobanco = conecta.rs!num_saldobco SQL = "" SQL = " select * from tb_receber where num_bco = " & Trim(codigobco) & "" & _ " order by dat_vencimento" Set conecta.rs = conecta.cn1.Execute(SQL) If Not conecta.rs.EOF Then While Not conecta.rs.EOF codemp = conecta.rs!cod_pagto numdoc = conecta.rs!num_fatura emissao = conecta.rs!dat_emissao datvenc = conecta.rs!dat_vencimento txthist = conecta.rs!txt_historico numvrl = CDbl(conecta.rs!num_vlrfatura) Status = conecta.rs!flg_status vlrmov = numvrl + vlrmov SQL = "" SQL = " select txt_id from TB_EMPRESAS where cod_empresa = " & Trim(codemp) & " " Set conecta.rs = conecta.cn1.Execute(SQL) txtid = conecta.rs!txt_id gridMov.AddItem UCase(Trim(txtid)) & Chr(9) & _ numdoc & Chr(9) & _ emissao & Chr(9) & _ datvenc & Chr(9) & _ UCase(Trim(txthist)) & Chr(9) & _ numvrl & Chr(9) & _ UCase(Trim(Status)) & Chr(9), I I = I + 1 vlrmov = CDbl(num_vlrfatura) + vlrmov conecta.rs.MoveNext Wend End If txtsaldoper.Text = Format(vlrmov, "###,###,###.#0") TxtSaldoMov.Text = Format(saldomov, "###,###,###.#0") TxtSaldoBanco.Text = Format(saldobanco, "###,###,###.#0") End Sub
Respostas
-
O problema é que vc esta redefinindo seu recordset no meio do laço.. veja:
SQL = " select * from tb_receber where num_bco = " & Trim(codigobco) & "" & _ " order by dat_vencimento" Set conecta.rs = conecta.cn1.Execute(SQL)
SQL = "" SQL = " select txt_id from TB_EMPRESAS where cod_empresa = " & Trim(codemp) & " " Set conecta.rs = conecta.cn1.Execute(SQL) txtid = conecta.rs!txt_id
Note que conecta.rs é o mesmo... vc tem que ter outro recordset para a segunda consulta..
Outra forma seria fazer um join na primeira consulta para nao ter que fazer isso a cada iteraçao..
E por ultimo, abandonar o VB6 e abraçar o VB.NET.. ainda eu vou conseguir te convencer :)
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Sugerido como Resposta Fulvio Cezar Canducci Dias quinta-feira, 19 de dezembro de 2013 14:24
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:49
-
Fulvio, bom dia, o meu problema que só está trazendo o ultimo registro, a rotina nao esta executando o loop para trazer os outros registros. Vc poderia me ajudar nessa questão??
Será que RecordSet ta já no final então faça com essa rotina e me fale eu coloque um conecta.rs.MoveFirst
Private Sub CmdLocalizar_Click() vlrmov = 0 saldomov = 0 gridMov.Cols = 7 gridMov.Row = 0 gridMov.Col = 0 gridMov.Text = "Empresa" gridMov.ColWidth(0) = 800 gridMov.Col = 1 gridMov.Text = "Documento" gridMov.ColWidth(1) = 800 gridMov.Col = 2 gridMov.Text = "Emissao" gridMov.ColWidth(2) = 1000 gridMov.Col = 3 gridMov.Text = "Vencimento" gridMov.ColWidth(3) = 1000 gridMov.Col = 4 gridMov.Text = "Historico" gridMov.ColWidth(4) = 5000 gridMov.Col = 5 gridMov.Text = "Valor" gridMov.ColWidth(5) = 1200 gridMov.Col = 6 gridMov.Text = "Status" gridMov.ColWidth(6) = 1000 I = 1 SQL = "" SQL = "select cod_banco,num_saldomov,num_saldobco from Tb_bancos " & _ "where txt_banco = '" & CboBanco.Text & "' " & _ "and txt_conta = " & CboConta.Text & "" Set conecta.rs = conecta.cn1.Execute(SQL) codigobco = conecta.rs!cod_banco saldomov = conecta.rs!num_saldomov saldobanco = conecta.rs!num_saldobco SQL = "" SQL = " select * from tb_receber where num_bco = " & Trim(codigobco) & "" & _ " order by dat_vencimento" Set conecta.rs = conecta.cn1.Execute(SQL) If Not conecta.rs.EOF Then conecta.rs.MoveFirst While Not conecta.rs.EOF codemp = conecta.rs!cod_pagto numdoc = conecta.rs!num_fatura emissao = conecta.rs!dat_emissao datvenc = conecta.rs!dat_vencimento txthist = conecta.rs!txt_historico numvrl = CDbl(conecta.rs!num_vlrfatura) Status = conecta.rs!flg_status vlrmov = numvrl + vlrmov SQL = "" SQL = " select txt_id from TB_EMPRESAS where cod_empresa = " & Trim(codemp) & " " Set conecta.rs = conecta.cn1.Execute(SQL) txtid = conecta.rs!txt_id gridMov.AddItem UCase(Trim(txtid)) & Chr(9) & _ numdoc & Chr(9) & _ emissao & Chr(9) & _ datvenc & Chr(9) & _ UCase(Trim(txthist)) & Chr(9) & _ numvrl & Chr(9) & _ UCase(Trim(Status)) & Chr(9), I I = I + 1 vlrmov = CDbl(num_vlrfatura) + vlrmov conecta.rs.MoveNext Wend End If txtsaldoper.Text = Format(vlrmov, "###,###,###.#0") TxtSaldoMov.Text = Format(saldomov, "###,###,###.#0") TxtSaldoBanco.Text = Format(saldobanco, "###,###,###.#0") End Sub
Esse Link ta ótimo da uma lida também: http://www.macoratti.net/vb6_msfg.htm
- Editado Fulvio Cezar Canducci Dias quinta-feira, 19 de dezembro de 2013 13:08
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:49
-
Bom dia Luiz_fco,
Caso tenha encontrado alguma solução poste a mesma para auxiliar outros usuários, e não esqueça de marcar como resposta caso alguma solução passada lhe ajude.
Att,
Giovani Cruzara – Microsoft Contingent Staff
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.
Msdn Community Support
Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:48
-
-
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:49
-
Fulvio, coloquei o conecta.rs.MoveFirst no local indicado, não deu certo , agora nem o ultimo registro ele trouxe.
O Willian encontrou o problema dá uma olhada!
Se ta sobrepondo o Rs !!! é por causa disso!
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:49
-
Duas coisas:
1- Datas no SQL Server tem que estar entre apostrofos, deste jeito:
and dat_vencimento between '2013-01-01' and '2013-01-31'
2 - O formato mais indicado (pois é universal) é YYYY-MM-DD... outros formatos vao depender da configuraçao do regional e da configuraçao do SQL SErver...
Entao para funcionar o correto é
SQL = " select * from tb_receber where num_bco = " & Trim(codigobco) & "" & _ " and dat_vencimento between '" & format(cdate(datincial.text),"yyyy-MM-dd") & "' and '" & format(cdate(datfinal.text),"yyyy-MM-dd") & "'" & _ " order by dat_vencimento"
Para o join, estude este artigo:
http://www.sqlserverdicas.com/2011/03/juncoes-entre-tabelas-joins.html
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Editado William John Adam TrindadeModerator quinta-feira, 19 de dezembro de 2013 16:58
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:49
-
Se da erro na compilaçao é porque um dos seus "&_" esta errado..
Particularmente e u nao gosta de usar esse tipo de estrutura.. Prefiro assim:
SQL = "" SQL = "SELECT r.cod_pagto,r.num_fatura,r.dat_emissao,r.dat_vencimento,r.txt_historico, r.num_vlrfatura,r.flg_satatus, e.cod_empresa,e.txt_id, b.cod_banco" SQL = SQL & " FROM TB_RECEBER r " SQL = SQL & " INNER JOIN TB_EMPRESAS e ON r.cod_pagto = e.cod_empresa" SQL = SQL & " INNER JOIN TB_BANCOS b ON r.num_bco = b.cod_banco" SQL = SQL & " WHERE b.cod_banco = " & codigobco & " AND r.dat_vencimento BETWEEN '" & Format(CDate(datincial.Text), "yyyy-MM-dd") & "' AND '" & Format(CDate(datfinal.Text), "yyyy-MM-dd") & "'" SQL = SQL & " ORDER BY r.dat_vencimento"
alem de ficar mais organizado.. fica mais facil de debugar.
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Editado William John Adam TrindadeModerator quinta-feira, 19 de dezembro de 2013 18:34
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:48
-
MAs o erro é na compilaçao ou quando vc roda o programa?
Poste aqui exatamente a mensagem recebida.
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:48
-
Ok... o que vc postou nao é o que vc esta usando.
O problema é o TB_BANCOS AS B (esse "as" é que nao pode existir)
Seu codigo aqui deve dar certo:
SQL = "" SQL = "SELECT r.cod_pagto,r.num_fatura,r.dat_emissao,r.dat_vencimento,r.txt_historico, r.num_vlrfatura,r.flg_satatus, e.cod_empresa,e.txt_id, b.cod_banco" SQL = SQL & " FROM TB_RECEBER r " SQL = SQL & " INNER JOIN TB_EMPRESAS e ON r.cod_pagto = e.cod_empresa" SQL = SQL & " INNER JOIN TB_BANCOS b ON r.num_bco = b.cod_banco" SQL = SQL & " WHERE b.cod_banco = " & codigobco & " AND r.dat_vencimento BETWEEN '" & Format(CDate(datincial.Text), "yyyy-MM-dd") & "' AND '" & Format(CDate(datfinal.Text), "yyyy-MM-dd") & "'" SQL = SQL & " ORDER BY r.dat_vencimento"
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:48
-
Outro detalhe... Por que vc faz um join com TB_BANCO????
Creio que essa tabela seja sub-utilizada na sua query.. ficaria mais simples:
SQL = "" SQL = "SELECT r.cod_pagto,r.num_fatura,r.dat_emissao,r.dat_vencimento,r.txt_historico, r.num_vlrfatura,r.flg_satatus, e.cod_empresa,e.txt_id, r.num_bco " SQL = SQL & " FROM TB_RECEBER r " SQL = SQL & " INNER JOIN TB_EMPRESAS e ON r.cod_pagto = e.cod_empresa" SQL = SQL & " WHERE r.num_bco = " & codigobco & " AND r.dat_vencimento BETWEEN '" & Format(CDate(datincial.Text), "yyyy-MM-dd") & "' AND '" & Format(CDate(datfinal.Text), "yyyy-MM-dd") & "'" SQL = SQL & " ORDER BY r.dat_vencimento"
att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Editado William John Adam TrindadeModerator quinta-feira, 19 de dezembro de 2013 19:59
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:48
-
Faça o seguinte, antes da linha:
Set conecta.rs = conecta.cn1.Execute(SQL)
coloque um
Msgbox(SQL)
e depois poste a imagem aqui.
Creio que algo nao esta sendo substituido corretamente no sql
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:48
-
O nome do campo "r.flg_satatus" esta correto? Verifique a sintaxe de cada um dos campos para ver se correspondem ao nome no banco de dados.
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Editado William John Adam TrindadeModerator segunda-feira, 23 de dezembro de 2013 13:44
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:48
Todas as Respostas
-
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:49
-
-
Fulvio, bom dia, o meu problema que só está trazendo o ultimo registro, a rotina nao esta executando o loop para trazer os outros registros. Vc poderia me ajudar nessa questão??
Será que RecordSet ta já no final então faça com essa rotina e me fale eu coloque um conecta.rs.MoveFirst
Private Sub CmdLocalizar_Click() vlrmov = 0 saldomov = 0 gridMov.Cols = 7 gridMov.Row = 0 gridMov.Col = 0 gridMov.Text = "Empresa" gridMov.ColWidth(0) = 800 gridMov.Col = 1 gridMov.Text = "Documento" gridMov.ColWidth(1) = 800 gridMov.Col = 2 gridMov.Text = "Emissao" gridMov.ColWidth(2) = 1000 gridMov.Col = 3 gridMov.Text = "Vencimento" gridMov.ColWidth(3) = 1000 gridMov.Col = 4 gridMov.Text = "Historico" gridMov.ColWidth(4) = 5000 gridMov.Col = 5 gridMov.Text = "Valor" gridMov.ColWidth(5) = 1200 gridMov.Col = 6 gridMov.Text = "Status" gridMov.ColWidth(6) = 1000 I = 1 SQL = "" SQL = "select cod_banco,num_saldomov,num_saldobco from Tb_bancos " & _ "where txt_banco = '" & CboBanco.Text & "' " & _ "and txt_conta = " & CboConta.Text & "" Set conecta.rs = conecta.cn1.Execute(SQL) codigobco = conecta.rs!cod_banco saldomov = conecta.rs!num_saldomov saldobanco = conecta.rs!num_saldobco SQL = "" SQL = " select * from tb_receber where num_bco = " & Trim(codigobco) & "" & _ " order by dat_vencimento" Set conecta.rs = conecta.cn1.Execute(SQL) If Not conecta.rs.EOF Then conecta.rs.MoveFirst While Not conecta.rs.EOF codemp = conecta.rs!cod_pagto numdoc = conecta.rs!num_fatura emissao = conecta.rs!dat_emissao datvenc = conecta.rs!dat_vencimento txthist = conecta.rs!txt_historico numvrl = CDbl(conecta.rs!num_vlrfatura) Status = conecta.rs!flg_status vlrmov = numvrl + vlrmov SQL = "" SQL = " select txt_id from TB_EMPRESAS where cod_empresa = " & Trim(codemp) & " " Set conecta.rs = conecta.cn1.Execute(SQL) txtid = conecta.rs!txt_id gridMov.AddItem UCase(Trim(txtid)) & Chr(9) & _ numdoc & Chr(9) & _ emissao & Chr(9) & _ datvenc & Chr(9) & _ UCase(Trim(txthist)) & Chr(9) & _ numvrl & Chr(9) & _ UCase(Trim(Status)) & Chr(9), I I = I + 1 vlrmov = CDbl(num_vlrfatura) + vlrmov conecta.rs.MoveNext Wend End If txtsaldoper.Text = Format(vlrmov, "###,###,###.#0") TxtSaldoMov.Text = Format(saldomov, "###,###,###.#0") TxtSaldoBanco.Text = Format(saldobanco, "###,###,###.#0") End Sub
Esse Link ta ótimo da uma lida também: http://www.macoratti.net/vb6_msfg.htm
- Editado Fulvio Cezar Canducci Dias quinta-feira, 19 de dezembro de 2013 13:08
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:49
-
-
O problema é que vc esta redefinindo seu recordset no meio do laço.. veja:
SQL = " select * from tb_receber where num_bco = " & Trim(codigobco) & "" & _ " order by dat_vencimento" Set conecta.rs = conecta.cn1.Execute(SQL)
SQL = "" SQL = " select txt_id from TB_EMPRESAS where cod_empresa = " & Trim(codemp) & " " Set conecta.rs = conecta.cn1.Execute(SQL) txtid = conecta.rs!txt_id
Note que conecta.rs é o mesmo... vc tem que ter outro recordset para a segunda consulta..
Outra forma seria fazer um join na primeira consulta para nao ter que fazer isso a cada iteraçao..
E por ultimo, abandonar o VB6 e abraçar o VB.NET.. ainda eu vou conseguir te convencer :)
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Sugerido como Resposta Fulvio Cezar Canducci Dias quinta-feira, 19 de dezembro de 2013 14:24
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:49
-
Fulvio, coloquei o conecta.rs.MoveFirst no local indicado, não deu certo , agora nem o ultimo registro ele trouxe.
O Willian encontrou o problema dá uma olhada!
Se ta sobrepondo o Rs !!! é por causa disso!
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:49
-
Willian, boa tarde....pode crer vc vai conseguir sim...RSRSRS.... vc pode me ajudar com o exemplo, pois nao sei mexer com o join e também poderia ver o que estaria de errado na rotina onde preciso fazer a consulta no intervalo de data, quando coloco a linha com BETWEEN na consulta nao traz nada. Segue abaixo rotina.
SQL = " select * from tb_receber where num_bco = " & Trim(codigobco) & "" & _
" and dat_vencimento between " & datincial.text & " and " & datfinal.text & " " & _ " order by dat_vencimento" Set conecta.rs = conecta.cn1.Execute(SQL)
-
Duas coisas:
1- Datas no SQL Server tem que estar entre apostrofos, deste jeito:
and dat_vencimento between '2013-01-01' and '2013-01-31'
2 - O formato mais indicado (pois é universal) é YYYY-MM-DD... outros formatos vao depender da configuraçao do regional e da configuraçao do SQL SErver...
Entao para funcionar o correto é
SQL = " select * from tb_receber where num_bco = " & Trim(codigobco) & "" & _ " and dat_vencimento between '" & format(cdate(datincial.text),"yyyy-MM-dd") & "' and '" & format(cdate(datfinal.text),"yyyy-MM-dd") & "'" & _ " order by dat_vencimento"
Para o join, estude este artigo:
http://www.sqlserverdicas.com/2011/03/juncoes-entre-tabelas-joins.html
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Editado William John Adam TrindadeModerator quinta-feira, 19 de dezembro de 2013 16:58
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:49
-
Willian, entendi. fiz os acertos na função e na compilação da o erro
" Erro de sintaxe(operador faltando) na expressão de consulta"
'r.cod_pagto = e.cod_empresa inner join tb_bancos b on r.num_bco = b.cod_banco'.
Não estou conseguindo localizar esse erro..
SQL = ""
SQL = " SELECT r.cod_pagto,r.num_fatura,r.dat_emissao,r.dat_vencimento,r.txt_historico," & _
" r.num_vlrfatura,r.flg_satatus," & _
" e.cod_empresa,e.txt_id," & _
" b.cod_banco FROM " & _
" TB_RECEBER r INNER JOIN TB_EMPRESAS e ON r.cod_pagto = e.cod_empresa" & _
" INNER JOIN TB_BANCOS b ON r.num_bco = b.cod_banco " & _
" WHERE b.cod_banco = " & codigobco & " AND " & _
" r.dat_vencimento BETWEEN '" & Format(CDate(datincial.Text), "yyyy-MM-dd") & "' AND " & _
" '" & Format(CDate(datfinal.Text), "yyyy-MM-dd") & "'" & _
" ORDER BY r.dat_vencimento"
Set conecta.rs = conecta.cn1.Execute(SQL)
-
Se da erro na compilaçao é porque um dos seus "&_" esta errado..
Particularmente e u nao gosta de usar esse tipo de estrutura.. Prefiro assim:
SQL = "" SQL = "SELECT r.cod_pagto,r.num_fatura,r.dat_emissao,r.dat_vencimento,r.txt_historico, r.num_vlrfatura,r.flg_satatus, e.cod_empresa,e.txt_id, b.cod_banco" SQL = SQL & " FROM TB_RECEBER r " SQL = SQL & " INNER JOIN TB_EMPRESAS e ON r.cod_pagto = e.cod_empresa" SQL = SQL & " INNER JOIN TB_BANCOS b ON r.num_bco = b.cod_banco" SQL = SQL & " WHERE b.cod_banco = " & codigobco & " AND r.dat_vencimento BETWEEN '" & Format(CDate(datincial.Text), "yyyy-MM-dd") & "' AND '" & Format(CDate(datfinal.Text), "yyyy-MM-dd") & "'" SQL = SQL & " ORDER BY r.dat_vencimento"
alem de ficar mais organizado.. fica mais facil de debugar.
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Editado William John Adam TrindadeModerator quinta-feira, 19 de dezembro de 2013 18:34
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:48
-
-
MAs o erro é na compilaçao ou quando vc roda o programa?
Poste aqui exatamente a mensagem recebida.
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:48
-
-
-
Ok... o que vc postou nao é o que vc esta usando.
O problema é o TB_BANCOS AS B (esse "as" é que nao pode existir)
Seu codigo aqui deve dar certo:
SQL = "" SQL = "SELECT r.cod_pagto,r.num_fatura,r.dat_emissao,r.dat_vencimento,r.txt_historico, r.num_vlrfatura,r.flg_satatus, e.cod_empresa,e.txt_id, b.cod_banco" SQL = SQL & " FROM TB_RECEBER r " SQL = SQL & " INNER JOIN TB_EMPRESAS e ON r.cod_pagto = e.cod_empresa" SQL = SQL & " INNER JOIN TB_BANCOS b ON r.num_bco = b.cod_banco" SQL = SQL & " WHERE b.cod_banco = " & codigobco & " AND r.dat_vencimento BETWEEN '" & Format(CDate(datincial.Text), "yyyy-MM-dd") & "' AND '" & Format(CDate(datfinal.Text), "yyyy-MM-dd") & "'" SQL = SQL & " ORDER BY r.dat_vencimento"
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:48
-
Outro detalhe... Por que vc faz um join com TB_BANCO????
Creio que essa tabela seja sub-utilizada na sua query.. ficaria mais simples:
SQL = "" SQL = "SELECT r.cod_pagto,r.num_fatura,r.dat_emissao,r.dat_vencimento,r.txt_historico, r.num_vlrfatura,r.flg_satatus, e.cod_empresa,e.txt_id, r.num_bco " SQL = SQL & " FROM TB_RECEBER r " SQL = SQL & " INNER JOIN TB_EMPRESAS e ON r.cod_pagto = e.cod_empresa" SQL = SQL & " WHERE r.num_bco = " & codigobco & " AND r.dat_vencimento BETWEEN '" & Format(CDate(datincial.Text), "yyyy-MM-dd") & "' AND '" & Format(CDate(datfinal.Text), "yyyy-MM-dd") & "'" SQL = SQL & " ORDER BY r.dat_vencimento"
att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Editado William John Adam TrindadeModerator quinta-feira, 19 de dezembro de 2013 19:59
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:48
-
-
Faça o seguinte, antes da linha:
Set conecta.rs = conecta.cn1.Execute(SQL)
coloque um
Msgbox(SQL)
e depois poste a imagem aqui.
Creio que algo nao esta sendo substituido corretamente no sql
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:48
-
-
O nome do campo "r.flg_satatus" esta correto? Verifique a sintaxe de cada um dos campos para ver se correspondem ao nome no banco de dados.
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Editado William John Adam TrindadeModerator segunda-feira, 23 de dezembro de 2013 13:44
- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:48
-
Bom dia Luiz_fco,
Caso tenha encontrado alguma solução poste a mesma para auxiliar outros usuários, e não esqueça de marcar como resposta caso alguma solução passada lhe ajude.
Att,
Giovani Cruzara – Microsoft Contingent Staff
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.
Msdn Community Support
Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.- Marcado como Resposta Giovani Cr terça-feira, 24 de dezembro de 2013 13:48
-
-
-