CONECTAR E DESCONECTAR ADO NO VB

MARCOSDETTMANN 02/03/2010 22:57:37
#335856
Boa noite pessoal!!
Se eu consigo criar uma sub em um módulo para conectar o meu banco de dados,
Sub ConectaBD()
ComunicacaoBD.Provider = [Ô]Microsoft.Jet.OLEDB.4.0;[Ô] & _
[Ô]Data Source=[Ô] & App.Path & [Ô]\\BDIelb.mdb;[Ô]
End Sub
pq eu nao consigo criar uma sub nesse mesmo módulo para desconectar do banco?
Sub DesconectaBD()
ComunicacaoBD = Nothing
End Sub
Ao chamar a sub [Ô]DesconectaBD[Ô] quando fecho meu form, dá a mensagem: [Ô]Invalid use of object[Ô] e aponta para minha linha de código:
Sub DesconectaBD()
ComunicacaoBD = Nothing
End Sub

Abraços!!
PEGUDO 03/03/2010 07:42:25
#335874
Ao invés de usar:

[txt-color=#0000f0]Sub[/txt-color] DesconectaBD()
ComunicacaoBD = [txt-color=#0000f0]Nothing
End Sub[/txt-color]

Use:

[txt-color=#0000f0]Sub[/txt-color] DesconectaBD()
ComunicacaoBD.Close
[txt-color=#0000f0]End Sub[/txt-color]

Veja se funciona
abraços
LUIS.FLAVIO 03/03/2010 07:43:16
#335875
Marcos, as variáveis dos objetos ADODB.Connection deve estar no mesmo módulo que essas suas rotinas!

Por exemplo:

Public ComunicacaoBD as New ADODB.Connection

Sub DesconectaBD()
On Error Resume Next
ComunicacaoBD.Close
ComunicacaoBD = Nothing
End Sub
MARCOSDETTMANN 04/03/2010 00:50:55
#335982
Ok Luis Flavio, as rotinas estão no mesmo módulo. Fiz como no exemplo que tu colocaste usando o Resume Next para qualquer erro e funciona, mas será que realmente desconectou do banco? Como eu posso saber se estou ou não conectado ao banco?

Abração,
Marcos.
TECLA 04/03/2010 09:20:36
#335995
Para fechar uma conexão, utilize o método CLOSE.
Exemplo:
con.Close
Set con = Nothing


Para validar se está CONECTADO na base, utilize o método STATE.
Exemplo:
If con.State = 1 Then
MsgBox [Ô]Conectado[Ô]
Else
MsgBox [Ô]Desconectado[Ô]
End If
MARCOSDETTMANN 05/03/2010 07:38:11
#336140
Obrigado pela dica Tecla. Fiz o teste de conexão que tu colocou, porém mesmo eu chamando a sub ConectaBD no load da minha MDI, dá sempre a mensagem [Ô]Deconectado[Ô]. Se não for te pedir muito, pode dar uma olhada no meu projeto e ver se estou fazendo a conexão com o banco corretamente lá no meu módulo? Clique no menu Cadastros, Membros e lá está o comando pra testar a conexão.
Desde já agradeço, Marcos.
DANIKULL 05/03/2010 08:08:27
#336141
Resposta escolhida
MARCOSDETTMANN, bom dia.

Mude a Forma que você usa para se conectar com o Banco de Dados. Faça como a forma abaixo que vai funcionar, ok??

    Set ComunicacaoBD = New ADODB.Connection
With ComunicacaoBD
.Provider = [Ô]Microsoft.JET.OLEDB.4.0[Ô]
.ConnectionString = (App.Path + [Ô]\[Ô] + [Ô]BDIelb.mdb[Ô])
.Open
End With


Qualquer coisa poste ai novamente, ok??
MARCOSDETTMANN 05/03/2010 13:11:18
#336182
Boa tarde Danikull!!! Show de bola, fiz como tu colocaste e funciona 100%, agora no teste aparece como conectado. Muito obrigado pela ajuda.

Abraços,
Marcos.
Tópico encerrado , respostas não são mais permitidas