Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

webfuture

Problema ao deixar combobox selecionado

Recommended Posts

Olá galera, estou com um probleminha, tenho um form em meu projeto com vários campos combobox, este form serve tanto para inclusão como alteração de dados, quando vem um id uso como alteração de dados e os campos do mesmo ficam selecionados, porém, em um dos campos combobox ele não deixa selecionar e da o erro:

 

Operação não permitida quando o objeto esta aberto

 

Neste mesmo combobox os dados vem do banco de dados, vejam o código:

 


Me.conta_corrente.Items.Add("Banco(s):")

        Try

            Dim banco, codigo_agencia, conta_corrente, id_conta As String

            RS.Open("SELECT id_conta, banco, codigo_Agencia, conta_corrente FROM tb_contas_correntes", Conexao, 1, 2) 'Abre a conexão com o login digitado no campo "Login" do formulário, para verificar se o login já existe

            If RS.Fields("banco").Value <> "" Then 'Caso o login exista na base de dados

                While Not RS.EOF

                    id_conta = RS.Fields("id_conta").Value
                    banco = RS.Fields("banco").Value
                    codigo_agencia = RS.Fields("codigo_agencia").Value
                    conta_corrente = RS.Fields("conta_corrente").Value
                    Me.conta_corrente.Items.Add(id_conta & " - " & banco)

                    RS.MoveNext()
                End While

                RS.Close()

            End If


        Catch ex As Exception
            MsgBox("Erro encontrado1: " & Err.Description)
        End Try

        Me.conta_corrente.Items.Add("Caixa(s):")

        Try

            Dim ponto, codigo, id_ponto As String

            RS.Open("SELECT id_ponto, ponto, codigo FROM tb_pontos", Conexao, 1, 2) 

            If RS.Fields("ponto").Value <> "" Then 
                While Not RS.EOF

                    id_ponto = RS.Fields("id_ponto").Value
                    ponto = RS.Fields("ponto").Value
                    codigo = RS.Fields("codigo").Value
                    Me.conta_corrente.Items.Add(id_ponto & " - " & codigo & " - " & ponto)
                    'Me.conta_corrente.Items.Add(id_ponto)

                    RS.MoveNext()
                End While

                RS.Close()

            End If

        Catch ex As Exception
            MsgBox("Erro encontrado4: " & Err.Description)
        End Try

E o codigo que pego o item para deixar selecionado é:

 


Dim id_usar As String = RS8.Fields("id_conta").Value

                    Try

                        RS2.Open("SELECT id_conta, banco, codigo_agencia, conta_corrente, data_cadastro FROM tb_contas_correntes where id_conta = " & Trim(id_usar) & " ", Conexao, 1, 2)
                        If RS2.Fields("banco").Value <> "" Then

                            Dim id_conta_banco, banco, codigo_Agencia, conta_corrente As String

                            id_conta_banco = RS2.Fields("id_conta").Value
                            banco = RS2.Fields("banco").Value
                            codigo_Agencia = RS2.Fields("codigo_Agencia").Value
                            conta_corrente = RS2.Fields("conta_corrente").Value

                                      Me.conta_corrente.Text = (id_conta_banco & " - " & banco)

                        End If

                    Catch ex As Exception
                        MsgBox("Erro encontrado: " & Err.Description)
                    End Try

                    RS2.Close()

Alguém sabe me dizer o porque do erro ?

 

Atenciosamente,

Xavier

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual linha o erro ocorre?

 

Queria fazer algumas observacoes:

1 - Na sua primeira consulta, quantas linhas espera que retorne? Caso seja apenas uma, nao eh necessario usar um loop de repeticao (while no caso), se for mais de uma, toda vez que da uma volta no loop, ele copia novos dados por cima das variaveis, fazendo você perder os valores anteiores.

 

2 - você tem dois objetos com mesmo nome, uma variavel e uma combo. Isso nao eh aconselhavel. Uma dica legal eh você sempre usar iniciais que facilitem a identificacao em objetos. Por exemplo usar txtNome para text, cboNome para combo e assim por diante.

 

3 - você esta fechando sua conexao dentro do if, ou seja, se for falso sua conexao nao sera fechada e isso te trara erros futuros.

 

4 - Seu erro ocorre normalmente quando esta tentando abrir uma conexao jah aberta. Debuge seu programa e confira se rs esta realmente sendo fechado antes de você abrir de novo.

 

Att,

 

Claudio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.