Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Test ODBC au démarrage d'une application Access

2 réponses
Avatar
titof92
Bonjour,

Est-il possible de conditionner le d=E9marrage d'une application Access,
apr=E8s avoir v=E9rifi=E9 l'=E9tat des connexions ODBC requises ? car
actuellement, j'ai des connexions ODBC =E0 =E9tablir vers un serveur AIX,
et je voudrais conditionner le fonctionnement de l'applicatif, =E0 la
disponibilit=E9 de ces connexions ODBC.
Quelle portion de code puis-je utiliser pour ce faire ?
Actuellement, j'ai trouv=E9 comme seul moyen de lancer une requ=EAte SQL
directe (avec le DSN, le login et le mot de passe renseign=E9s), et de
tester le code erreur retour, si erreur il y a ... mais =E7a reste long,
car je fais un truc du genre :
Set Re_Test =3D currentdb.openrecordset"Ma_Requete")

Le texte de la requ=EAte "Ma_Requete" est quant =E0 lui le suivant :
select * from tab.trtt....
L'ennui, c'est que =E7a prend un temps fou... :-(

Merci par avance,
Bonne journ=E9e,

Christophe

2 réponses

Avatar
Michel__D
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
Avatar
Argyronet
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