Ir para conteúdo

POWERED BY:

Arquivado

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

Carlos Gustavo

Problema na conexao com o bd

Recommended Posts

Oi, tenho um modulo de programação:

 

Public conexao As New ADODB.Connection

No meu formulario splash tem o seguinte

 

Private Sub Timer1_Timer()
On Error GoTo ErroConexao
conexao.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Bibliotecario.mdb;"
conexao.Open
ProgressBar1.Value = Val(ProgressBar1.Value) + 1
If ProgressBar1.Value = 100 Then
Unload Me
frmBiblio.Show
End If
Exit Sub
ErroConexao:
With Err
If .Number <> 0 Then
MsgBox "Houve um erro na conexão com o banco de dados." & vbCrLf & "O Bibliotecario será fechado.", vbCritical + vbOKOnly + vbApplicationModal, "Erro"
.Number = 0
Set conexao = Nothing
End
End If
End With
End Sub

E quando executo da o seguinte erro:

 

"Operação Não Permitida quando o objeto está aberto."

 

O que eu faço?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Carlos Gustavo, seja bem vindo ao fórum

 

Quando postar dúvidas com erros, procure sempre indicar qual linha o erro indica.

 

Nessa caso, suponho que seja essa:

conexao.Open

Se for essa mesma, ocorre porque você deve estar tentando sua conexão mas ela já foi aberta antes.

Se você estiver tentando conectar no mesmo bd que se conectou anteriormente, não há a necessidade de se conectar de novo, então pode apagar as linhas referentes à conexão.

Caso esteja tentando se conectar em outro bd, você precisa de um nome diferente para sua variável, pois ele entende que a variavel conexao está aberta com uma e não pode abrir outra.

 

Tente alterar e diga o resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, consegui resolver o problema, só mudei de lugar o codigo da conexão para o envento load do formulario.

 

Antes, o código estava dentro do timer, não faço a minima ideia do que aconteceu, gostaria de uma explicação.

 

Mas, agradeço a todos que participaram deste tópico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você sabe como funciona o Timer, não é?

De longe, bem longe, pode ser comparado com um Loop, que executa o bloco de intrução em um determinado intervalo.

Então seu código passou um vez pelo timer, abriu a conexão sem problemas.

Quando foi passar denovo OPÁ, a conexão já estava aberta, isso gera um erro.

 

 

 

Abraços!

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.