Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
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.