USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Nova soma
Irenko
BELO HORIZONTE
MG - BRASIL
Postada em 23/10/2006 14:50 hs            
Pessoal, como eu incremento a variavel (Criterio) fazendo esse codigo rodar 03 vezes e na terceira vez parar? É o seguinte quando eu dou o primeiro incremento 1 para essa variavel e carrego o primeiro label(LB1), depois tera que incrementar automaticamente a variavel para 2 e vazer a segunda pesquisa para carregar o segundo Label(LB2) por ultimo incrementar a variavel para 3 e carregar terceiro Label(LB3) finalizando a pesquisa e limpando a variavel. Isso tem jeito?
Private Sub CommandButton1_Click()
Dim Criterio As String

Criterio = 1

Dim I
Dim Soma  As Double

Set TbData = New ADODB.Recordset
Set rsTemp = New ADODB.Recordset

Dim Sql As String
'For Criterio = 1 To 3
Sql = "Select Data,Codigo,SaldoHora From HExtra WHERE Codigo Like '%" & Criterio & "%' GROUP BY Data,Codigo,SaldoHora Having Data BETWEEN #" & Format(TxtIn.Value, "MM/DD/YYYY") & "# AND #" & Format(TxtFin.Value, "MM/DD/YYYY") & "#   ORDER BY Data"
Set TbData = Bd_Hora.Execute(Sql)

Do While Not TbData.EOF
ListHora.AddItem Format(CDate(TbData("SaldoHora")), "HH:MM")
TbData.MoveNext
Loop
'Next
For I = 0 To ListHora.ListCount - 1
Soma = CDate(Soma) + CDate(ListHora.List(I))
Next I
If Criterio = 1 Then
Lb1.Caption = CDate(Soma)
ElseIf Criterio = 2 Then
Lb2.Caption = CDate(Soma)
ElseIf Criterio = 3 Then
Lb3.Caption = CDate(Soma)
End If
End Sub
     
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 23/10/2006 15:32 hs            
vc não pode criar um array de labels?

for i=0 to 2
  Soma = CDate(Soma) + CDate(ListHora.List(I))
  lb(i) = CDate(Soma)
next
     
Irenko
BELO HORIZONTE
MG - BRASIL
Postada em 23/10/2006 15:42 hs            
Tentei assim mas o cálculo esta dando errado!!

Private Sub CommandButton1_Click()
Dim Criterio As Integer


Criterio = 0

Dim I
Dim Soma  As Double

Set TbData = New ADODB.Recordset
Set rsTemp = New ADODB.Recordset

Dim Sql As String
For Criterio = 1 To 3
Sql = "Select Data,Codigo,SaldoHora From HExtra WHERE Codigo Like '%" & Criterio & "%' GROUP BY Data,Codigo,SaldoHora Having Data BETWEEN #" & Format(TxtIn.Value, "MM/DD/YYYY") & "# AND #" & Format(TxtFin.Value, "MM/DD/YYYY") & "#   ORDER BY Data"
Set TbData = Bd_Hora.Execute(Sql)

Do While Not TbData.EOF
ListHora.AddItem Format(CDate(TbData("SaldoHora")), "HH:MM")
TbData.MoveNext
Loop

For I = 0 To ListHora.ListCount - 1
Soma = CDate(Soma) + CDate(ListHora.List(I))
Next I
If Criterio = 1 Then
Lb1.Caption = CDate(Soma)
ListHora.Clear
ElseIf Criterio = 2 Then
Lb2.Caption = CDate(Soma)
ListHora.Clear
ElseIf Criterio = 3 Then
Lb3.Caption = CDate(Soma)
ListHora.Clear
End If
Next
End Sub
     
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 23/10/2006 16:41 hs            
hummm não costumo fazer conta de tempo ou data convertidos para números... mas qdo vc debuga vc percebe q a conta está certa?? experimenta fazer a conta e converter pra cdate... conta a conta pra ver se bate...
     
Irenko
BELO HORIZONTE
MG - BRASIL
Postada em 23/10/2006 16:58 hs            
Obrigatóriamente a variavel tem que ser Integer? Quando coloco como String da a mensagem de erro (Tipos incompatíveis) nesta linha:

For Criterio = 1 To 3

Acho que o problema esta ai, mas não sei como resolver!!
     
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 23/10/2006 19:46 hs            

Se critério for integer não vejo problema algum nesta linha... mas se não for tb não tem problema...

for i= 1.1 to 2.5 step 0.1

next

funciona normal...

Tipos incompatíveis nesta linha ae é muito estranho...

     
Página(s): 1/1    

CyberWEB Network Ltda.    © Copyright 2000-2026   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página