VERIFICAR CONEXAO COM BANCO

SNNIFFER 28/10/2012 23:35:32
#413029
Fala pessoal,

Uso esta conexão para meu banco:

  
Set gConexao = New ADODB.Connection
gConexao.ConnectionTimeout = 60
gConexao.CommandTimeout = 400
gConexao.CursorLocation = adUseClient
gConexao.Open [Ô]DRIVER={MySQL ODBC 3.51 Driver};[Ô] _
& [Ô]user=[Ô] & NomeUsuario _
& [Ô];password=[Ô] & NomeSenha _
& [Ô];database=[Ô] & [Ô]Teste[Ô] _
& [Ô];server=[Ô] & NomeServer _
& [Ô];option=[Ô] & (1 + 2 + 8 + 32 + 2048 + 16384)

If gConexao.State = 1 Then
SaveSetting App.Title, [Ô]Settings[Ô], NomeServer, NomeServer
SaveSetting App.Title, [Ô]Settings[Ô], NomeUsuario, NomeUsuario
SaveSetting App.Title, [Ô]Settings[Ô], [Ô]Teste[Ô], [Ô]Teste[Ô]
end if



Funciona normalmente, mas, gostaria de saber o que uso para caso a conexão não seja bem sucedida, não quero usar um tratamento de erro e sim abrir um form quando não conectar.

Já tentei assim:


If gConexao.State = 0 Then
msgbox[Ô]bla,bla,bla[Ô]
end if


Mas, ao desligar o banco não aparece o msgbox, e sim dá erro em tempo de execução.

Vlw
LUIZCOMINO 29/10/2012 08:27:48
#413033
Resposta escolhida
amigão o que da pra você fazer é

On Erro Goto Erro:

Set gConexao = New ADODB.Connection
gConexao.ConnectionTimeout = 60
gConexao.CommandTimeout = 400
gConexao.CursorLocation = adUseClient
gConexao.Open [Ô]DRIVER={MySQL ODBC 3.51 Driver};[Ô] _
& [Ô]user=[Ô] & NomeUsuario _
& [Ô];password=[Ô] & NomeSenha _
& [Ô];database=[Ô] & [Ô]Teste[Ô] _
& [Ô];server=[Ô] & NomeServer _
& [Ô];option=[Ô] & (1 + 2 + 8 + 32 + 2048 + 16384)

If gConexao.State = 1 Then
SaveSetting App.Title, [Ô]Settings[Ô], NomeServer, NomeServer
SaveSetting App.Title, [Ô]Settings[Ô], NomeUsuario, NomeUsuario
SaveSetting App.Title, [Ô]Settings[Ô], [Ô]Teste[Ô], [Ô]Teste[Ô]
end if

exit sub
Goto Erro:

Formulario.Show
SNNIFFER 29/10/2012 10:16:55
#413041
Mas, tem um porem, esta conexão já vem de uma condição IF, ou seja, qualquer erro que ocorrer no form, no caso no evento Load, dará este erro e abrirá o Outro Form.

Preciso que só abra o Outro Form, caso a conexão não seja bem sucedida.
LUIZCOMINO 29/10/2012 10:41:16
#413042
pego o numero do erro que ocorre quando a conexão não é bem sucedida e faça


On Erro Goto Erro:

Set gConexao = New ADODB.Connection
gConexao.ConnectionTimeout = 60
gConexao.CommandTimeout = 400
gConexao.CursorLocation = adUseClient
gConexao.Open [Ô]DRIVER={MySQL ODBC 3.51 Driver};[Ô] _
& [Ô]user=[Ô] & NomeUsuario _
& [Ô];password=[Ô] & NomeSenha _
& [Ô];database=[Ô] & [Ô]Teste[Ô] _
& [Ô];server=[Ô] & NomeServer _
& [Ô];option=[Ô] & (1 + 2 + 8 + 32 + 2048 + 16384)

If gConexao.State = 1 Then
SaveSetting App.Title, [Ô]Settings[Ô], NomeServer, NomeServer
SaveSetting App.Title, [Ô]Settings[Ô], NomeUsuario, NomeUsuario
SaveSetting App.Title, [Ô]Settings[Ô], [Ô]Teste[Ô], [Ô]Teste[Ô]
end if

exit sub
Goto Erro:
if err.Number=[Ô]numero do erro[Ô] then
Formulario.Show
end if
LUIZCOMINO 29/10/2012 10:43:06
#413043
esqueci de um detalhe no if


if err.Number=[Ô]numero do erro[Ô] then
Formulario.Show
else
msgbox err.Number & [Ô] - [Ô] & err.Description
end if
SNNIFFER 31/10/2012 14:16:51
#413279
Boa ideia Luiz, valeu.
Tópico encerrado , respostas não são mais permitidas