Se connecter avec
S'enregistrer | Connectez-vous

VBA Access

Dernière réponse : dans Programmation

Bonjour à tous,
1) Est-ce que le code suivant en VBA dans Access est correct ?
2) Est-ce que j’utilise ADO ou DAO implicitement ?
3) Comment il accède aux données alors?
4) Est ce que j'ai besoin d'ouvrir une connexion ou non?

Dim MaBase As Database
Dim rst As Recordset

Set MaBase = CurrentDb

Set rst = MaBase.OpenRecordset("MaTable", dbOpenDynaset)

Autres pages sur : vba access

Lassé par la pub ? Créez un compte

Salut, Boutairy

1) Le code m'a l'air tout à fait correct.
2) Par défaut, c'est DAO qui est utilisé. Tu peux le vérifier en regardant dans les références (dans l'éditeur VBA, menu Outils/Références... , c'est la première référence cochée (entre "Microsoft DAO x.x Object Library" et "Microsoft ActiveX Data Objects x.x Library") qui a raison).
3) Comme tu lui demandes : en ouvrant une feuille de réponses dynamique ;) . Plus sérieusement, tu trouveras toutes les infos en cherchant dans l'aide en ligne d'Access sur OpenRecordset.
4) Non, en utilisant CurrentDb, tu te sers de la connexion sur laquelle tu es en train de travailler et qui est donc déjà ouverte.

Bonne continuation

Tout à fait, Thierry !;)Le DAO est implicite dans le premier code mais cela ne nuit pas de le préciser.
Pour compléter, si tes tables sont au format Access (tables locales ou tables liées contenues dans un fichier Access), DAO est la méthode la plus rapide.
Par contre, si tes tables sont sur SQL server ou MySQL et que tu utilises une liaison ODBC, les performances seront meilleures avec ADO. Mais cela demande de refaire une partie du code et change aussi la façon d'écrire les requêtes dans le code (les requêtes enregistrées dans Access ne changent pas, elles).

Bonne continuation
Lassé par la pub ? Créez un compte
Tom's guide dans le monde