Souvenez-vous des jours glorieux de la jeunesse, lorsque la soupe avec des pâtes alphabets était votre repas favori. Gardez ces joyeux souvenirs en tête tandis que nous découvrons la version base de données de la soupe alphabet. Les sections suivantes présentent les notions de base de comment accéder à une base de données à l’aide de chaînes de connexion et utiliser une interface de programmation de base de données dans votre code Access VBA.
Dans cet article
Utilisation d’un pilote ODBC ou fournisseur OLE DB
Interface par programme vers SQL Server à partir d’Access
Résumé des versions de pilotes ODBC
Utilisation d’un pilote ODBC ou fournisseur OLE DB
Les chaînes de connexion existent depuis longtemps. Vous pouvez définir une chaîne de connexion mise en forme dans l’interface utilisateur d’Access ou dans le code VBA. Une chaîne de connexion (ODBC ou OLE DB) transmet les informations directement à la base de données, telles que l’emplacement du serveur, le nom de la base de données, le type de sécurité et d’autres options utiles. Par exemple :
ODBC;DRIVER=SQL Server;SERVER="MyServer";DATABASE="MyHRdb";TRUSTED_CONNECTION=Yes
Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=MyHRdb; Integrated Security=SSPI;
Tout d’abord, il y avait SQL Server Native Client (SNAC), une bibliothèque autonome qui contenait les technologies ODBC et OLEDB, et qui est encore disponible pour les versions de SQL Server 2005 à 2012. De nombreuses applications héritées utilisaient SNAC et sont encore prises en charge pour assurer la compatibilité descendante, mais nous vous déconseillons de l’utiliser pour le développement de nouvelles applications. Vous devez utiliser des versions individuelles et téléchargeables ultérieures des pilotes ODBC.
Pilotes ODBC
ODBC (Open Database Connectivity) est un protocole qui permet de connecter une base de données Access à une source de données externes, telle que Microsoft SQL Server. En règle générale, vous utilisez les sources de données fichier (ou fichiers DSN) pour ajouter une chaîne de connexion, auquel cas le mot clé FILEDSN est utilisé dans la chaîne de connexion, ou stocké dans le registre, auquel cas le mot clé DSN est utilisé. Vous pouvez également utiliser VBA pour spécifier ces propriétés à l’aide d’une chaîne de connexion «sans DSN».
Au fil des années, les pilotes ODBC ont été livrés en trois étapes :
-
Avant 2005, les pilotes ODBC étaient fournis avec les composants d’accès aux données Windows (WDAC), appelés À l’origine Microsoft Data Access Components (MDAC). Ces composants sont encore fournis avec Windows à des fins de compatibilité descendante. Pour plus d’informations, voirComposants Microsoft ou Windows Data Access.
-
Les pilotes ODBC sont livrés avec SNAC pour SQL Server 2005 jusqu’à SQL Server 2012.
-
Après SQL Server 2012, les pilotes ODBC sont livrés individuellement et contiennent une prise en charge des nouvelles fonctionnalités SQL Server.
Pour le nouveau développement, évitez d’utiliser les pilotes ODBC des deux premières phases et utilisez les pilotes ODBC de la troisième phase.
Fournisseur OLE DB
La liaison et incorporation d’objets (OLE DB) est un protocole plus récent que vous utilisez pour connecter une base de données Access à une source de données externes, telle que Microsoft SQL Server. OLE DB ne nécessite pas de DSN et permet également d’accéder à l’ensemble des sources de données ODBC et des pilotes ODBC.
Conseil En règle générale, vous utilisez la boîte de dialogue Propriétés des liaisons de données pour ajouter une chaîne de connexion OLE DB. Bien qu’Access n’ait aucun moyen d’ouvrir la boîte de dialogue Propriétés des liaisons de données, dans l’Explorateur Windows, vous pouvez créer un fichier. txt vide, choisir le type de fichier. UDL, puis double-cliquer sur le fichier. Une fois que vous avez créé une chaîne de connexion, remplacez le type de fichier par. txt.
Au fil des années, les pilotes OLE DB ont été livrés en trois étapes :
-
Avant 2005, les pilotes OLE DB étaient fournis avec les composants d’accès aux données Windows (WDAC), appelés à l’origine Microsoft Data Access Components (MDAC).
-
Les pilotes OLE DB sont livrés avec SQL Server 2005 jusqu’à SQL Server 2017. Ils ont été déconseillés en 2011.
-
Dans 2017, le fournisseur Server SQL OLE DB a été supprimé.
La version actuellement recommandée pour le développement de nouvelles solutions est le pilote OLE DB 18 pour SQL Server.
Optimiser les performances avec une chaîne de connexion ODBC
Pour optimiser les performances, réduire le trafic réseau et réduire l’accès multi-utilisateur à la base de données SQL Server, utilisez le moins de chaînes de connexion possible en partageant des chaînes de connexion sur plusieurs ensembles d’enregistrements. Bien que l’ACE passe simplement sur une chaîne de connexion au serveur, elle comprend et utilise les mots clés suivants : DSN, DATABASE, UID, PWD et DRIVER pour réduire les communications client/serveur.
Remarque Si vous perdez une connexion ODBC à une source de données externe, Access tente de se reconnecter automatiquement. Si la nouvelle tentative réussit, vous pouvez continuer à travailler. Si la nouvelle tentative échoue, vous pouvez continuer à utiliser des objets qui ne dépendent pas de la connexion. Pour vous reconnecter, fermez et rouvrez Access.
Recommandations pour l’utilisation de ODBC et OLE DB
Évitez de mélanger les chaînes de connexion et les technologies d’accès aux bases de données. Utilisez une chaîne de connexion ODBC pour DAO. Utilisez une chaîne de connexion OLE DB pour ADO. Si votre application contient du code VBA qui utilise DAO et ADO, utilisez le pilote ODBC pour DAO et le fournisseur OLE DB pour ADO. Efforcez-vous d’obtenir la dernière fonctionnalité et la prise en charge respectivement pour ODBC et OLEDB.
ODBC utilise le terme «pilote» et «OLE DB» utilise le terme «fournisseur». Les termes décrivent le même type de composant logiciel, mais ne sont pas interchangeables dans la syntaxe de chaîne de connexion. Utilisez la valeur correcte comme indiqué.
Interface par programme vers SQL Server à partir d’Access
Il existe deux façons principales d’interformer par programme sur une base de données SQL Server à partir d’Access.
DAO
Un objet d’accès aux données (DAO) fournissent une interface abstraite à une base de données. Microsoft Data Access Objects (DAO) est le modèle d’objet de programmation natif qui vous permet d’accéder au cœur d’Access et de SQL Server pour créer, supprimer, modifier et répertorier des objets, tables, champs, index, relations, requêtes, propriétés et bases de données externes.
Pour plus d’informations, voir référence des objets d’accès aux données Microsoft.
ADO
Les objets ADO (ActiveX Data Objects) fournissent un modèle de programmation de haut niveau qui est disponible dans Access par une référence à une bibliothèque tierce. ADO est facile à découvrir et permet aux applications clientes d’accéder aux données et de les manipuler à partir de diverses sources, y compris Access et SQL Server. Ses principaux avantages sont sa facilité d’utilisation, rapidité, faible surcharge de mémoire et un faible encombrement sur le disque. ADO prend également en charge les principales fonctionnalités de création et d’application Web.
Pour plus d’informations, voir référence des objets de données Microsoft ActiveXet objets de données Microsoft ActiveX (ADO).
Lequel devez-vous choisir ?
Dans une solution Access qui utilise du code VBA, vous pouvez utiliser DAO, ADO ou les deux comme technologie d’interface de base de données. DAO continue d’être utilisé par défaut dans Access. Par exemple, tous les formulaires, rapports et requêtes Access utilisent DAO. Cependant, lorsque vous migrez vers SQL Server, envisagez d’utiliser ADO pour optimiser l’efficacité de votre solution. Voici des instructions générales pour vous aider à déterminer quand utiliser DAO ou ADO.
Utilisez DAO lorsque vous souhaitez :
-
Créez un formulaire lié en lecture/écriture sans utiliser VBA.
-
Tableau de requêtes locales.
-
Télécharger des données dans des tableaux temporaires.
-
Utiliser des requêtes directes comme sources de données pour les rapports ou formulaires en mode lecture seule.
-
Définir et utiliser un objet TableDef ou Querydef dans VBA.
Utilisez ADO lorsque vous souhaitez :
-
Tirer parti d’autres méthodes pour optimiser, telles que l’exécution d’opérations asynchrones.
-
Exécuter des requêtes DDL et DML directes.
-
Accéder aux données SQL Server directement par le biais de recordsets dans VBA.
-
Écrire du code plus simple pour certaines tâches, telles que la diffusion en continu d’objets BLOB.
-
Appeler directement une procédure stockée, avec des paramètres à l’aide d’un objet Command dans VBA.
Résumé des versions de pilotes ODBC
Le tableau suivant résume les informations importantes concernant les versions de pilotes ODBC, les emplacements de téléchargement et la prise en charge des fonctionnalités. Veillez à utiliser la version d’octet correcte (64 bits ou 32 bits) du pilote basée sur Windows et non sur Office. Si vous exécutez l’accès 32 bits sur 64 bits Windows, installez les pilotes 64 bits, qui incluent les composants 32 bits nécessaires pour Access.
Pour plus d’informations, voirUtilisation de mots clés de chaîne de connexion avec le client natif SQL Server,notes de publication pour ODBC à SQL Server sur Windows (v17), et fonctionnalités du pilote Microsoft ODBC Driver pour SQL Server sur Windows (V13, 11).
Résumé des versions du fournisseur OLE DB
Le tableau suivant résume les informations importantes concernant les versions de pilotes OLE DB, les emplacements de téléchargement et la prise en charge des fonctionnalités. Veillez à utiliser la version d’octet correcte (64 bits ou 32 bits) du pilote basée sur Windows et non sur Office. Si vous exécutez l’accès 32 bits sur 64 bits Windows, installez les pilotes 64 bits, qui incluent les composants 32 bits nécessaires pour Access.
Pour plus d’informations, voirutilisation de mots clés de chaîne de connexion avec le client natif SQL Server.
Fournisseur OLE DB |
Version |
Télécharger |
Nouvelles fonctionnalités |
OLE DB Driver 18.2.1 (MSOLEDBSQL) |
SQL Server 2017 |
Voir les fonctionnalités pilote OLE DB pour SQL Server etles notes de publication du pilote Microsoft OLE DB pour SQL Server |
|
SQL Server Native Client (SQLNCLI) |
SQL Server 2005 à 2012 |
Déconseillé, ne l’utilisez pas |
|
Pilote OLE DB (SQLOLEDB) |
Déconseillé, ne l’utilisez pas |
Résumé des mots clés ODBC
Le tableau suivant récapitule les mots clés ODBC reconnus par SQL Server et leur finalité. Seul un sous-ensemble est reconnu par Access.
Mot clé |
Description |
Addr |
Adresse réseau du serveur exécutant une instance de SQL Server. |
AnsiNPW |
Spécifie l’utilisation de comportements définis par ANSI pour la gestion des comparaisons NULL, des remplissages de données de caractères, des avertissements et de la concaténation NULL (oui ou non). |
APP |
Nom de l’application ayant appelé SQLDriverConnect. |
ApplicationIntent |
Déclare le type de charge de travail de l’application lors de la connexion à un serveur (ReadOnly ou ReadWrite). |
AttachDBFileName |
Nom du fichier principal d’une base de données pouvant être jointe. |
AutoTranslate |
Indique si des chaînes de caractères ANSI sont envoyées entre le client ou le serveur, ou converties en Unicode (oui ou non). |
Database |
Nom de la base de données. Description Objectif de la connexion. Pilote Nom du pilote tel qu’il a été renvoyé par SQLDrivers. |
DSN |
Nom d’une source de données système ou utilisateur ODBC existante. Chiffrer Indique si les données doivent être chiffrées avant d’être envoyées sur le réseau (Oui ou Non). |
Failover_Partner |
Nom du serveur partenaire de basculement à utiliser si une connexion ne peut pas être établie avec le serveur principal. |
FailoverPartnerSPN |
SPN du partenaire de basculement. |
PCL |
Mot clé déconseillé. |
FileDSN |
Nom d’une source de données fichiers ODBC existante. Langue Langage SQL Server. |
MARS_Connection |
Spécifie plusieurs ensembles de résultats actifs (MARS) sur la connexion pour SQL Server 2005 (9. x) ou version ultérieure (oui ou non). |
MultiSubnetFailover |
Indique si la connexion à l’écouteur du groupe de disponibilité d’un groupe de disponibilité SQL Server ou d’une instance de cluster avec basculement (oui ou non). |
Net |
dbnmpntw indique canaux nommés et dbmssocn indique TCP/IP. |
PWD |
Mot de passe de connexion SQL Server. |
QueryLog_On |
Indique la journalisation des requêtes d’exécution longue (oui ou non). |
QueryLogFile |
Chemin d’accès complet et nom de fichier d’un fichier à utiliser pour consigner les données sur les requêtes à long terme. |
QueryLogTime |
Chaîne de caractères de chiffre indiquant le seuil (en millisecondes) de journalisation des requêtes de longue durée. |
QuotedId |
Indique si SQL Server utilise les règles ISO relatives à l’utilisation de guillemets dans les instructions SQL (oui ou non). |
Régional |
Indique si le pilote ODBC du client SQL Server natif utilise les paramètres de client lors de la conversion de données monétaires, de date ou d’heure en données de type caractère (oui ou non). |
SaveFile |
Nom d’un fichier source de données ODBC dans lequel les attributs de la connexion active sont enregistrés si la connexion réussit. |
Serveur |
Nom d’une instance SQL Server : Serveur sur le réseau, adresse IP ou alias Configuration Manager. |
ServerSPN |
SPN du serveur. |
StatsLog_On |
Active la capture des données de performance du pilote ODBC du client natif SQL Server. |
StatsLogFile |
Chemin d’accès complet et nom d’un fichier utilisé pour enregistrer les statistiques de performances du pilote ODBC du client SQL Server natif. |
Trusted_Connection |
Indique si le mode d’authentification Windows ou le nom d’utilisateur ou le mot de passe SQL Server est utilisé pour la validation de la connexion (oui ou non). |
TrustServerCertificate |
Utilisé avec le chiffrement, permet d’activer le chiffrement à l’aide d’un certificat de serveur auto-signé. |
UID |
Nom de connexion SQL Server. |
UseProcForPrepare |
Mot clé déconseillé. |
WSID |
Identificateur de station de travail, nom réseau de l’ordinateur sur lequel réside l’application. |
Résumé des mots clés OLE DB
Le tableau suivant récapitule les mots clés OLE DB reconnus par SQL Server et leur finalité. Seul un sous-ensemble est reconnu par Access.
Mot clé |
Description |
Addr |
Adresse réseau du serveur exécutant une instance de SQL Server. |
APP |
Chaîne identifiant l’application. |
ApplicationIntent |
Déclare le type de charge de travail de l’application lors de la connexion à un serveur (ReadOnly ou ReadWrite). |
AttachDBFileName |
Nom du fichier principal d’une base de données pouvant être jointe. |
AutoTranslate |
Configure la conversion de caractères OEM/ANSI (true ou false). |
Délai de connexion |
Durée (en secondes) d’attente d’exécution de l’initialisation de la source de données. |
Langue actuelle |
Nom du langage SQL Server. |
Source de données |
Nom d’une instance de SQL Server dans l’organisation. |
Database |
Nom de la base de données. |
DataTypeCompatibility |
Nombre indiquant le mode de gestion des types de données qui sera utilisé. |
Chiffrer |
Indique si les données doivent être chiffrées avant d’être envoyées sur le réseau (Oui ou Non). |
FailoverPartner |
Nom du serveur de basculement utilisé pour la mise en miroir de la base de données. |
FailoverPartnerSPN |
SPN du partenaire de basculement. |
Catalogue initial |
Nom de la base de données. |
Nom de fichier initial |
Nom du fichier principal (y compris le nom du chemin d’accès complet) d’une base de données pouvant être jointe. |
Sécurité intégrée |
Utilisé pour l’authentification Windows (SSPI). |
Langue |
Langage SQL Server. |
MarsConn |
Spécifie plusieurs ensembles de résultats actifs (MARS) sur la connexion pour SQL Server 2005 (9. x) ou version ultérieure (oui ou non). |
Net |
Bibliothèque réseau utilisée pour établir une connexion à une instance de SQL Server au sein de l’organisation. |
Adresse réseau |
Adresse réseau du serveur d’une instance de SQL Server dans l’organisation. |
PacketSize |
Taille de paquet réseau. La valeur par défaut est 4096. |
Informations de sécurité persistantes |
Indique si la sécurité persistante est activée (true ou false). |
PersistSensitive |
Indique si la sensibilité persistante est activée (true ou false). |
Fournisseur |
Pour SQL Server Native Client, ce doit être SQLNCLI11. |
PWD |
Mot de passe de connexion SQL Server. |
Serveur |
Nom d’une instance SQL Server : Serveur sur le réseau, adresse IP ou alias Configuration Manager. |
ServerSPN |
SPN du serveur. |
Pause |
Durée (en secondes) d’attente d’exécution de l’initialisation de la source de données. |
Trusted_Connection |
Indique si le mode d’authentification Windows ou le nom d’utilisateur ou le mot de passe SQL Server est utilisé pour la validation de la connexion (oui ou non). |
TrustServerCertificate |
Indique si un certificat de serveur est validé (vrai ou faux). |
UID |
Nom de connexion SQL Server. |
Utiliser le chiffrement pour les données |
Indique si les données doivent être chiffrées avant d’être envoyées sur le réseau (True ou False). |
UseProcForPrepare |
Mot clé déconseillé. |
WSID |
Identificateur de station de travail, nom réseau de l’ordinateur sur lequel réside l’application. |