cs_observatoire
Messages postés75Date d'inscriptionvendredi 10 mars 2006StatutMembreDernière intervention23 août 2006
-
31 mai 2006 à 11:45
cs_vpoyo
Messages postés363Date d'inscriptionvendredi 14 février 2003StatutMembreDernière intervention20 avril 2010
-
31 mai 2006 à 11:57
Bonjour,
Je réalise une interface utilisateur sur Access, avec des requêtes SQL, de type:
CodeSQL = "SELECT Variable FROM Table IN 'Chemin d'accès à la base externe' ;"
qui appelent une base de données externe (différente de celle en cours).
J'ai constaté que le bouton d'actualisation du formulaire, que j'ai créé:
Private Sub Actualiser_Click()
DoCmd.Close acForm, "Formulaire", acSaveNo
DoCmd.OpenForm "Formulaire"
End Sub
mettait des fois trop de temps à réouvrir le formulaire, et je suppose (mais si vous avez une autre idée je suis preneuse) que c'est parce que la base de données externe est encore ouverte. J'aimerais fermer cette base après la création de la requête SQL ou avant la fermeture du formulaire (lors de l'actualisation), mais je ne sais fermer que les base de données "CurrentDb", et ne sais pas comment faire appel à ma base, vu que ça a l'air de coincer avec le chemin d'accès...
Merci
Observatoire
cs_vpoyo
Messages postés363Date d'inscriptionvendredi 14 février 2003StatutMembreDernière intervention20 avril 20106 31 mai 2006 à 11:57
le moyen le plus simple serait d'exécuter la requête dans le code vba, avec ADO. ce qui implique création d'une connection, ouverture de la connection, création d'une commande, exécutation de la commande, traiter le recordset, tout fermer ^^
tu trouveras aisément tous les codes ADO sur ce site. ta base externe sera spécifié via la propriété ConnectionString de l'objet Connection.
Attention n'oublie pas que le recordset est un "curseur" côté serveur (ou base de donnée) ce qui implique que pour l'utilisé il faut garder la connection avec la base, il me semble qu'on peut jouer avec les options afin de pouvoir créer un recordset côté client et donc de pouvoir fermer la connection tout en conservant ses données accessible dans le recordset (une sorte de recordset offline ^^)