VERIFICAR SE ESTA CONECTADO AO BD VIA DAO

SHADOM 18/05/2010 12:51:02
#342081
Boa Tarde a todos..!!

Eu trabalho com sistema em DAO. Pelo sistema ser imenso, não tenho intensão ainda de trocar para ADO, pois quero já partir para Vb.net.

Tenho 3 notebooks trabalhando com Wireless usando o sistema e de vez em qdo cai a wireless e o sistema começa a dar erro e disco. Gostaria de saber se tem como eu identificar via DAO se o banco está conectado, se não, ele executa novamente a conexão ao BD.

Não sei se foi bem claro mas acho que é isso..

Se os ilustres amigos puderem ajudar, eu agradeço.
XXXANGELSXXX 18/05/2010 13:14:44
#342082
Caro amigo, isso é simples de resolver, se der pau como por exemplo.. erro de disco ou rede, ele gera um codigo, intercept o codigo e refaça a conexao.. exemplo..


 
On Error Goto ErroSistema

Minhas funções que estao sendo executadas, ou ate no load do form


ErroSistema:
[ô]if err.number = numero do erro que apareceu, exemplo. 53 then
if err.number = 53 then
msgbox [Ô]Fui desconectado, clica aqui para reconectar[Ô], vbinformation,[Ô]Erro[Ô]
elseif err.number = 3434 then
msgbox [Ô]Fui pro saco, clica aqui para coisar[Ô]...
else
Funcao para reconectar no banco ..
OPENDATABASE(.. etc.. nao lembro mais no dao)
end if

TECLA 18/05/2010 17:17:21
#342112
If con.State = 1 Then MsgBox [Ô]Conectado[Ô]
SHADOM 18/05/2010 17:57:13
#342125
Boa Tarde a todos...

Com relação ao amigo XXXANGELSXXX, já está sendo feita uma verificação com on error. Acontece que quando dá o erro ele executa o seguinte bloco

Select Case Err.Number
Case 3043
MsgBox Err.Number & [Ô] - [Ô] & Err.Description + vbCr & [Ô]Você foi desconectado da Base de Dados. Vamos Tentar Reconectar[Ô] + vbCr & [Ô](Origem: Atualiza_CentralMSG)[Ô], vbExclamation, [Ô]Error[Ô]
Set Banco = OpenDatabase(App.Path & [Ô]\banco_97.mdb[Ô])
Resume
Case Else
MsgBox [Ô]Error [Ô] & Err.Number & [Ô] ([Ô] & Err.Description & [Ô]) in procedure Atualiza_CentralMSG of Módulo Funcoes[Ô]
End Select

Só que no Resume, mesmo que esteja conectado novamente, ele dá erro e fecha o sistema.

Com relação ao amigo TECLA, esse comando aparentemente não está disponivel no DAO. Apenas no ADO. A não ser que tenha que criar Workspace, mas ai eu já não conheço muito. Se alguém puder me explicar agradeço. Eu abro o banco assim:

Set Banco = OpenDatabase(App.Path & [Ô]\banco_97.mdb[Ô])
Set TBCentralMsg = Banco.OpenRecordset([Ô]select * from centralmsg where codfuncdestino=[ô][Ô] & CodFuncional & [Ô][ô] and lida=true and pasta=[ô]Caixa de Entrada[ô][Ô], dbOpenDynaset)

Obrigado pela ajuda
Tópico encerrado , respostas não são mais permitidas