[VBA Access] Fermeture Database

cs_observatoire Messages postés 75 Date d'inscription vendredi 10 mars 2006 Statut Membre Dernière intervention 23 août 2006 - 31 mai 2006 à 11:45
cs_vpoyo Messages postés 363 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 20 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

1 réponse

cs_vpoyo Messages postés 363 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 20 avril 2010 6
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 ^^)
0
Rejoignez-nous