none
Executando varios laços ou procedimentos ao iniciar formulário RRS feed

  • Pergunta

  • Boa tarde Galera,

    Estou tendo uma duvida irritante, na abertura de um certo formulário, ele acessa um banco de dados e retorna em uma datatable os dados que utilizo para preencher um checklistbox, no total tenho tres, e preencho todos da mesma forma. Só que quando inicio o formulário ele só executa a primenta rotina, passando direto para a abertura do formulário sem carregar as demais checklist, oque está ocorrendo de errado?

    Private Sub frmCadastrar_Load(sender As Object, e As EventArgs) Handles Me.Load
            ChkAcaointerna()
            ChkConseguenciaInterna()
            ChkOcorrencia()
        End Sub
        Private Sub ChkOcorrencia()
            Dim i As Integer
            Dim ObterDados As Conexao = New Conexao
            Dim Dt As New DataTable
            Dt = ObterDados.ChkLer("tblOcorrencia")
            With Me.cblOcorrencia
                If Dt.Rows.Count > 0 Then
                    .Font = New Font("arial", 10)
                    For i = 0 To Dt.Rows.Count
                            .Items.Add(Dt.Rows(i).Item(1).ToString, False)
                    Next
                End If
                .Items.Add("Outros", False)
            End With
        End Sub
        Private Sub ChkConseguenciaInterna()
            Dim i As Integer
            Dim ObterDados As Conexao = New Conexao
            Dim Dt As New DataTable
            Dt = ObterDados.ChkLer("tblConseguenciaInterna")
            If Dt.Rows.Count > 0 Then
                With Me.cblConseguencias
                    .Font = New Font("arial", 10)
                    For i = 0 To Dt.Rows.Count
                        .Items.Add(Dt.Rows(i).Item(1).ToString, False)
                    Next
                End With
            End If
        End Sub
        Private Sub ChkAcaointerna()
            Dim Row As Integer
            Dim ObterDados As Conexao = New Conexao
            Dim Dt As New DataTable
            Dt = ObterDados.ChkLer("tblAcaoInterna")
            If Dt.Rows.Count > 0 Then
                With Me.cblAcaoInterna
                    .Font = New Font("arial", 10)
                    For Row = 0 To Dt.Rows.Count
                        .Items.Add(Dt.Rows(Row).Item(1).ToString, False)
                    Next
                    ChkAcaointerna()
                End With
            End If
        End Sub
    Esse é o código que utilizo para este fim, mas depois do primeiro procedimento ser executado, os demais nem chegam a ser executado. WTF?
    segunda-feira, 18 de abril de 2016 18:25

Respostas

  • Olá Selmo,

    Não acontece nenhum erro interno dentro da execução do ChkAcaointerna() ? Coloca um try catch nessa sub para ver se esta acontecendo algum erro dentro de "ObterDados" por exemplo.

    Os outros métodos funcionam se você comenta o primeiro?

    O código, assim olhando, não parece ter erro.

    • Marcado como Resposta Marcos SJ terça-feira, 19 de abril de 2016 14:34
    • Não Marcado como Resposta Selmo Rodrigues quarta-feira, 20 de abril de 2016 19:03
    • Marcado como Resposta Selmo Rodrigues quarta-feira, 20 de abril de 2016 19:03
    segunda-feira, 18 de abril de 2016 19:42

Todas as Respostas

  • Olá Selmo,

    Não acontece nenhum erro interno dentro da execução do ChkAcaointerna() ? Coloca um try catch nessa sub para ver se esta acontecendo algum erro dentro de "ObterDados" por exemplo.

    Os outros métodos funcionam se você comenta o primeiro?

    O código, assim olhando, não parece ter erro.

    • Marcado como Resposta Marcos SJ terça-feira, 19 de abril de 2016 14:34
    • Não Marcado como Resposta Selmo Rodrigues quarta-feira, 20 de abril de 2016 19:03
    • Marcado como Resposta Selmo Rodrigues quarta-feira, 20 de abril de 2016 19:03
    segunda-feira, 18 de abril de 2016 19:42
  • Fala sério que era algo tão simples, ainda pouco acostumado com a transição do VBA para o VB.NET que quase não uso o Try, o resultado é ficar quebrando a cabeça a toa, valeu pela ajuda. O problema era facil de se resolver, quando ele retornar a DataTable, eu utilizo a propriedades Rows para percorrer as linhas da tabela, só que o DataTable começa no index 0, e quando chegava no ultimo elemento ele já alcançou a ultima linha preenchida, era só acrescentar - 1 ou row = 1. Valeu pela ajuda \m/
    quarta-feira, 20 de abril de 2016 19:03