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... :-(
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
Bonjour,
titof92@libertysurf.fr 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
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
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
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)
"titof92@libertysurf.fr" 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... :-(
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... :-(