Ir para conteúdo
Fórum Script Brasil
  • 0

erro com progress bar


Alex Mauricio

Pergunta

Boa noite pessoal. Estou aqui novamente... Não é facil ser iniciante em desenvolvimento..rsrsrssr

Na minha aplicação, tenho o seguinte código que funciona perfeitamente:

Private Function adicionarDdd()
'O número de telefone na BD está com 8 dígitos... e vai passar a ter 10 (DDD + Telefone).
    Dim ssql As String
    Dim atualiza As String
    Dim tel_antigo As String
    Dim tel_novo As String
    Dim contador As Long
   
    contador = 0
   
    ssql = "select Telefone from Tabela1 order by telefone asc"
    Set TableAntiga = BancoDeDadosAntigo.OpenRecordset(ssql)
    
    While Not TableAntiga.EOF
        tel_antigo = TableAntiga!telefone

        If contador < barraProgresso.Max Then
            barraProgresso.Value = barraProgresso.Value + 1
            barraProgresso.Refresh

           If Len(Trim(tel_antigo)) = 8 Then
                tel_novo = "19" + tel_antigo
                atualiza = "update tabela1 set telefone = " & ""
                atualiza = atualiza & tel_novo & " where telefone = " & tel_antigo & ""
                BancoDeDadosAntigo.Execute (atualiza)
            End If
            
            contador = contador + 1
            TableAntiga.MoveNext
    Wend
    
    MsgBox contador, vbExclamation
    TableAntiga.Close
End Function
Como todos pode observar, o código vai ler todos os campos de telefone do BD e quando o nº de telefone tiver 8 caracteres, ele adiciona + 2 que é referente ao DDD. OK? Perfeito... funciona balinha, porém, por c tratar de 108 mil registros e o usuário não está sabendo o que está acontecendo, resolvi colocar um progress bar. A partir dai, estou com um problemaço... toda vez que rodo a aplicação ele entra no if de leitura dos 8 caracteres só na primeira vez, dá o update e não entra mais no if. Já dei break em vários lugares para verificar e a variável tem conteúdo ( com 8 caracteres ) só que ele pula, não entra no update. Segue o código abaixo.
Private Function adicionarDdd()
'O número de telefone na BD está com 8 dígitos... e vai passar a ter 10 (DDD + Telefone).
    Dim ssql As String
    Dim atualiza As String
    Dim tel_antigo As String
    Dim tel_novo As String
    Dim contador As Long
   
    contador = 0
   
    ssql = "select Telefone from Tabela1 order by telefone asc"
    Set TableAntiga = BancoDeDadosAntigo.OpenRecordset(ssql)
    
    barraProgresso.Visible = True
    barraProgresso.Value = 0
    barraProgresso.Max = TableAntiga.RecordCount
    
    While Not TableAntiga.EOF
        tel_antigo = TableAntiga!telefone

        If contador < barraProgresso.Max Then
            barraProgresso.Value = barraProgresso.Value + 1
            barraProgresso.Refresh

           If Len(Trim(tel_antigo)) = 8 Then
                tel_novo = "19" + tel_antigo
                atualiza = "update tabela1 set telefone = " & ""
                atualiza = atualiza & tel_novo & " where telefone = " & tel_antigo & ""
                BancoDeDadosAntigo.Execute (atualiza)
            End If
            

        End If
            contador = contador + 1
            TableAntiga.MoveNext
    Wend
    
    barraProgresso.Visible = False
    MsgBox contador, vbExclamation
    TableAntiga.Close
End Function

Como todos pode perceber, só adicionei algumas coisas para o progress bar que funciona, mas talvez pela minha falta de experiência, tem algo que não estou enxergando que está fazendo com que não entre o if e consequentemente não da o update.

Obrigado.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
Como todos pode perceber, só adicionei algumas coisas para o progress bar que funciona, mas talvez pela minha falta de experiência, tem algo que não estou enxergando que está fazendo com que não entre o if e consequentemente não da o update.

Faça essa modificação no seu código:

While Not TableAntiga.EOF
        tel_antigo = TableAntiga!telefone

            barraProgresso.Value = contador 
            barraProgresso.Refresh

           If Len(Trim(tel_antigo)) = 8 Then
                tel_novo = "19" + tel_antigo
                atualiza = "update tabela1 set telefone = " & ""
                atualiza = atualiza & tel_novo & " where telefone = " & tel_antigo & ""
                BancoDeDadosAntigo.Execute (atualiza)
                tel_antigo = ''
           End If

        contador = contador + 1
        TableAntiga.MoveNext

    Wend

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...