Test ODBC au démarrage d'une application Access

Le
titof92
Bonjour,

Est-il possible de conditionner le démarrage d'une application Access,
après avoir vérifié l'état des connexions ODBC requises ? car
actuellement, j'ai des connexions ODBC à établir vers un serveur AIX,
et je voudrais conditionner le fonctionnement de l'applicatif, à la
disponibilité de ces connexions ODBC.
Quelle portion de code puis-je utiliser pour ce faire ?
Actuellement, j'ai trouvé comme seul moyen de lancer une requête SQL
directe (avec le DSN, le login et le mot de passe renseignés), et de
tester le code erreur retour, si erreur il y a mais ça reste long,
car je fais un truc du genre :
Set Re_Test = currentdb.openrecordset"Ma_Requete")

Le texte de la requête "Ma_Requete" est quant à lui le suivant :
select * from tab.trtt.
L'ennui, c'est que ça prend un temps fou :-(

Merci par avance,
Bonne journée,

Christophe
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Michel__D
Le #18578911
Bonjour,

a écrit :
Bonjour,

Est-il possible de conditionner le démarrage d'une application Access,
après avoir vérifié l'état des connexions ODBC requises ? car
actuellement, j'ai des connexions ODBC à établir vers un serveur AIX,
et je voudrais conditionner le fonctionnement de l'applicatif, à la
disponibilité de ces connexions ODBC.
Quelle portion de code puis-je utiliser pour ce faire ?
Actuellement, j'ai trouvé comme seul moyen de lancer une requête SQL
directe (avec le DSN, le login et le mot de passe renseignés), et de
tester le code erreur retour, si erreur il y a ... mais ça reste long,
car je fais un truc du genre :
Set Re_Test = currentdb.openrecordset"Ma_Requete")

Le texte de la requête "Ma_Requete" est quant à lui le suivant :
select * from tab.trtt....
L'ennui, c'est que ça prend un temps fou... :-(

Merci par avance,
Bonne journée,

Christophe



Voici ce que j'ai trouvé dans l'aide d'Access, à voir si tu ne peux
pas t'en inspirer.

' StillExecuting, propriété, exemple et Cancel, méthode, exemple

' Cet exemple utilise la propriété StillExecuting et la méthode Cancel
' pour ouvrir un objet Connection en mode asynchrone.

Sub CancelConnectionX()

Dim wrkMain As Workspace
Dim conMain As Connection
Dim sngTime As Single

Set wrkMain = CreateWorkspace("ODBCWorkspace", _
"admin", "", dbUseODBC)
' Ouvre la connexion en mode asynchrone.
Set conMain = wrkMain.OpenConnection("Publishers", _
dbDriverNoPrompt + dbRunAsync, False, _
"ODBC;DATABASE=pubs;UID=sa;PWD=;DSN=Publishers")

sngTime = Timer

' Attend cinq secondes.
Do While Timer - sngTime < 5
Loop

' Si la connexion n'a pas été établie, demande à
' l'utilisateur s'il souhaite toujours attendre.
' Si tel n'est pas le cas, annule la connexion
' et quitte la procédure.
Do While conMain.StillExecuting

If MsgBox("Pas encore de connexion--" & _
"patientez-vous toujours?", _
vbYesNo) = vbNo Then
conMain.Cancel
MsgBox "Connexion annulée!"
wrkMain.Close
Exit Sub
End If

Loop

With conMain
' Utilise l'objet Connection conMain.
.Close
End With

wrkMain.Close

End Sub
Argyronet
Le #18579551
Bonjour,

Effectivement, le contrôle par l'erreur reste une bonne solution...
En référençant ADO au projet, vous pouvez utiliser cette fonction :
------------------------------------------------------
Public Function ConnexionIsFree(ByVal ConnectionString As String) As Boolean
Dim oCnx As ADODB.Connection
On Error GoTo ConnexionIsFree_Error

Set oCnx = New ADODB.Connection
With oCnx
.Open ConnectionString
ConnexionIsFree = True
DoEvents
.Close
End With
On Error GoTo 0
ConnexionIsFree_Exit:
Set oCnx = Nothing
Exit Function

ConnexionIsFree_Error:
ConnexionIsFree = False
Resume ConnexionIsFree_Exit
End Function
------------------------------------------------------
Voyez si c'est plus optimal ainsi en temps d'exécution...
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442)
VBA pour Office 2007 (ISBN 2742983910)



"" a écrit :

Bonjour,

Est-il possible de conditionner le démarrage d'une application Access,
après avoir vérifié l'état des connexions ODBC requises ? car
actuellement, j'ai des connexions ODBC à établir vers un serveur AIX,
et je voudrais conditionner le fonctionnement de l'applicatif, à la
disponibilité de ces connexions ODBC.
Quelle portion de code puis-je utiliser pour ce faire ?
Actuellement, j'ai trouvé comme seul moyen de lancer une requête SQL
directe (avec le DSN, le login et le mot de passe renseignés), et de
tester le code erreur retour, si erreur il y a ... mais ça reste long,
car je fais un truc du genre :
Set Re_Test = currentdb.openrecordset"Ma_Requete")

Le texte de la requête "Ma_Requete" est quant à lui le suivant :
select * from tab.trtt....
L'ennui, c'est que ça prend un temps fou... :-(

Merci par avance,
Bonne journée,

Christophe



Publicité
Poster une réponse
Anonyme