LOOP NAO FUNCIONAR
galera, confesso que , nao o por que esse sql nao está pegando as informações correta
somar as contas em atraso...
o que está errado com esse treco;
Dim DtSistemas As Date
Set Rst = New ADODB.Recordset
Sql = [Ô]Select Count(Id_Dsp) As Vencdas, Sum(Vlr_Lanca) As Valor, Vlr_Lanca, Dt_Venct From Tb_Despdeb Where Stat_Desc =[ô]A Pagar[ô] Group by Vlr_Lanca, Id_Dsp, Dt_Venct[Ô]
Rst.Open Sql, Conexao, 3
If Not Rst.EOF Then
Do While Not Rst.EOF
If Rst!Dt_Venct < Format(DtSistemas, [Ô]dd/mm/yyyy[Ô]) Then
LblLancVncds.Caption = [Ô][Ô] & Format(Rst!Valor, [Ô]###,##0.00[Ô])
Exit Sub
End If
Rst.MoveNext
Loop
End If
somar as contas em atraso...
o que está errado com esse treco;
Dim DtSistemas As Date
Set Rst = New ADODB.Recordset
Sql = [Ô]Select Count(Id_Dsp) As Vencdas, Sum(Vlr_Lanca) As Valor, Vlr_Lanca, Dt_Venct From Tb_Despdeb Where Stat_Desc =[ô]A Pagar[ô] Group by Vlr_Lanca, Id_Dsp, Dt_Venct[Ô]
Rst.Open Sql, Conexao, 3
If Not Rst.EOF Then
Do While Not Rst.EOF
If Rst!Dt_Venct < Format(DtSistemas, [Ô]dd/mm/yyyy[Ô]) Then
LblLancVncds.Caption = [Ô][Ô] & Format(Rst!Valor, [Ô]###,##0.00[Ô])
Exit Sub
End If
Rst.MoveNext
Loop
End If
Dim DtSistemas As Date
Set Rst = New ADODB.Recordset
Sql = [Ô]Select Count(Id_Dsp) As Vencdas, Sum(Vlr_Lanca) As Valor, Vlr_Lanca, Dt_Venct From Tb_Despdeb Where Stat_Desc =[ô]A Pagar[ô] Group by Vlr_Lanca, Id_Dsp, Dt_Venct[Ô]
Rst.Open Sql, Conexao, 3
If Not Rst.EOF Then
Do While Not Rst.EOF
If Rst!Dt_Venct < Format(DtSistemas, [Ô]dd/mm/yyyy[Ô]) Then
LblLancVncds.Caption = [Ô][Ô] & Format(Rst!Valor, [Ô]###,##0.00[Ô])
End If
Rst.MoveNext
Loop
End If
tinha um exit sub ali no meioo tenta agora
Set Rst = New ADODB.Recordset
Sql = [Ô]Select Count(Id_Dsp) As Vencdas, Sum(Vlr_Lanca) As Valor, Vlr_Lanca, Dt_Venct From Tb_Despdeb Where Stat_Desc =[ô]A Pagar[ô] Group by Vlr_Lanca, Id_Dsp, Dt_Venct[Ô]
Rst.Open Sql, Conexao, 3
If Not Rst.EOF Then
Do While Not Rst.EOF
If Rst!Dt_Venct < Format(DtSistemas, [Ô]dd/mm/yyyy[Ô]) Then
LblLancVncds.Caption = [Ô][Ô] & Format(Rst!Valor, [Ô]###,##0.00[Ô])
End If
Rst.MoveNext
Loop
End If
tinha um exit sub ali no meioo tenta agora
continua nao pegando alguns vencimentos...
e campo está normal.. tipo data..
e campo está normal.. tipo data..
Deve resolver, altere esta linha:
If cdate(Rst!Dt_Venct) < DtSistemas Then
Tentou colocar a expressão Rst!Dt_Venct < Format(DtSistemas, [Ô]dd/mm/yyyy[Ô]) na cláusula where do sql?
[Ô]Select Count(Id_Dsp) As Vencdas, Sum(Vlr_Lanca) As Valor, Vlr_Lanca, Dt_Venct From Tb_Despdeb Where Rst!Dt_Venct < Format(DtSistemas, [Ô]dd/mm/yyyy[Ô]) and Stat_Desc =[ô]A Pagar[ô] Group by Vlr_Lanca, Id_Dsp, Dt_Venct[Ô]
[Ô]Select Count(Id_Dsp) As Vencdas, Sum(Vlr_Lanca) As Valor, Vlr_Lanca, Dt_Venct From Tb_Despdeb Where Rst!Dt_Venct < Format(DtSistemas, [Ô]dd/mm/yyyy[Ô]) and Stat_Desc =[ô]A Pagar[ô] Group by Vlr_Lanca, Id_Dsp, Dt_Venct[Ô]
Intrigante, mas nao fuciona nem uma das opções acima...
bom não sei qual o banco mas assim ficaria legal
o exemplo abaixo é para banco ACCESS
só que veja bem exbir o valor em um label não é ideal, pois somente o ultimo resultado irá aparecer, o ideal seria exibir em um Grid ou Listbox
ex: no lugar de lblLancVncds, coloco um listbox com o nome de LstLancVnct
o exemplo abaixo é para banco ACCESS
Sql = [Ô]Select Count(Id_Dsp) As Vencdas, Sum(Vlr_Lanca) As Valor, Vlr_Lanca, Dt_Venct From Tb_Despdeb Where Stat_Desc =[ô]A Pagar[ô] And Dt_Venct < #[Ô] & Format(DtSistemas, [Ô]mm/dd/yyyy[Ô]) & [Ô]# Group by Vlr_Lanca, Id_Dsp, Dt_Venct[Ô]
Rst.Open Sql, Conexao, 3
If Not Rst.EOF Then
Do While Not Rst.EOF
LblLancVncds.Caption = [Ô][Ô] & Format(Rst!Valor, [Ô]###,##0.00[Ô])
Rst.MoveNext
Loop
End If
só que veja bem exbir o valor em um label não é ideal, pois somente o ultimo resultado irá aparecer, o ideal seria exibir em um Grid ou Listbox
ex: no lugar de lblLancVncds, coloco um listbox com o nome de LstLancVnct
LstLancVnct.AddItem Rst!Vlr_Lanca & vbTab & Rst!Id_Dsp & vbTab & Rst!Dt_Venc
marcelo, estou usando o mysql. ja usei uma sql difetamente no banco, funciona da forma que quero.. já no vb, nao.. mas irei testar sua sql..
marcelo, também.. nao funcionou....
Set Rst = New ADODB.Recordset
Sql = [Ô]Select Count(Id_Dsp) As Vencdas, Sum(Vlr_Lanca) As Valor, Vlr_Lanca, Dt_Venct From Tb_Despdeb Where Stat_Desc =[ô]A Pagar[ô] And Dt_Venct <=[ô][Ô] & Format(DtSistemas, [Ô]yyyy/mm/dd[Ô]) & [Ô][ô] Group by Vlr_Lanca, Id_Dsp, Dt_Venct[Ô]
Rst.Open Sql, Conexao, 3
If Not Rst.EOF Then
Do While Not Rst.EOF
LblLancVncds.Caption = [Ô][Ô] & Format(Rst!Valor, [Ô]###,##0.00[Ô])
Rst.MoveNext
Loop
End If
Set Rst = New ADODB.Recordset
Sql = [Ô]Select Count(Id_Dsp) As Vencdas, Sum(Vlr_Lanca) As Valor, Vlr_Lanca, Dt_Venct From Tb_Despdeb Where Stat_Desc =[ô]A Pagar[ô] And Dt_Venct <=[ô][Ô] & Format(DtSistemas, [Ô]yyyy/mm/dd[Ô]) & [Ô][ô] Group by Vlr_Lanca, Id_Dsp, Dt_Venct[Ô]
Rst.Open Sql, Conexao, 3
If Not Rst.EOF Then
Do While Not Rst.EOF
LblLancVncds.Caption = [Ô][Ô] & Format(Rst!Valor, [Ô]###,##0.00[Ô])
Rst.MoveNext
Loop
End If
para mysql só altere o formato de data, isso se o campo Dt_venc for do tipo data/hora
veja a query
a query acima deverá funcionar com mysql leia o tópico anterior que expliquei o que deve alterar no Loop, pois veja bem um loop só é utili se a query for retornar mais de um resultado, e para exibir varios resultados deverá utilizar um listbox, ou algum grid, pois no labal, o primeiro resultado será sobreposto pelo segundo e assim por diante exibindo apenas o ultimo resultado.
veja a query
Sql = [Ô]Select Count(Id_Dsp) As Vencdas, Sum(Vlr_Lanca) As Valor, Vlr_Lanca, Dt_Venct From Tb_Despdeb Where Stat_Desc =[ô]A Pagar[ô] And Dt_Venct < [ô][Ô] & Format(DtSistemas, [Ô]YYYY-MM-DD[Ô]) & [Ô][ô] Group by Vlr_Lanca, Id_Dsp, Dt_Venct[Ô]
a query acima deverá funcionar com mysql leia o tópico anterior que expliquei o que deve alterar no Loop, pois veja bem um loop só é utili se a query for retornar mais de um resultado, e para exibir varios resultados deverá utilizar um listbox, ou algum grid, pois no labal, o primeiro resultado será sobreposto pelo segundo e assim por diante exibindo apenas o ultimo resultado.
Bom meu amigo é o seguinte
A sua comparação entre as datas do banco com a data atual não esta certa mais para que de certo vc precisa ter a data atual
mais como assim? é o seguinte
Na declaração da variável DtSistemas você esta dizendo que a mesma é de um tipo DATE e não que ela tem a data atual!
quando você declara uma variável do tipo DATE ela te trás a PRIMEIRA DATA DO CALENDARIO DO SISTEMA que é 30/12/1899 portanto esta errado
O correto seria assim
Verifica ai se retorna o que você esta pretendendo
A sua comparação entre as datas do banco com a data atual não esta certa mais para que de certo vc precisa ter a data atual
mais como assim? é o seguinte
Na declaração da variável DtSistemas você esta dizendo que a mesma é de um tipo DATE e não que ela tem a data atual!
quando você declara uma variável do tipo DATE ela te trás a PRIMEIRA DATA DO CALENDARIO DO SISTEMA que é 30/12/1899 portanto esta errado
O correto seria assim
Dim DtSistemas As Date
DtSistemas = Format(Now, [Ô]dd/MM/yyyy[Ô])
SQL = [Ô]Select Count(Id_Dsp) As Vencdas, Sum(Vlr_Lanca) As Valor, Vlr_Lanca, Dt_Venct From Tb_Despdeb Where Stat_Desc =[ô]A Pagar[ô] Group by Vlr_Lanca, Id_Dsp, Dt_Venct[Ô]
Rst.Open SQL, Conexao, 3
If Not Rst.EOF Then
Do While Not Rst.EOF
If CDate(Format(Rst!Dt_Venct, [Ô]dd/MM/yyyy[Ô])) < CDate(Format(DtSistemas, [Ô]dd/MM/yyyy[Ô])) Then
LblLancVncds.Caption = [Ô][Ô] & Format(Rst!Valor, [Ô]###,##0.00[Ô])
End If
Rst.MoveNext
Loop
End If
Verifica ai se retorna o que você esta pretendendo
Tópico encerrado , respostas não são mais permitidas