Connecter Access à SQL Server

S’applique à
Access pour Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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.

Composants de l’accès aux données

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

Résumé des versions du fournisseur OLE DB

Résumé des mots clés ODBC

Résumé des mots clés OLE DB

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, consultez Composants d’accès aux données Microsoft ou Windows.
  • 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.

Pointe En règle générale, vous utilisez la boîte de dialogue Propriétés de la liaison de données pour ajouter un 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.

Note Si une connexion ODBC à une source de données externe est perdue, Access tente automatiquement de s’y reconnecter. Si la nouvelle tentative réussit, vous pouvez continuer à travailler. Si la nouvelle tentative échoue, vous pouvez toujours travailler avec des objets qui ne reposent pas sur 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é.

Haut de la page

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 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 lister des objets, des tables, des champs, des index, des relations, des requêtes, des propriétés et des bases de données externes.

Pour plus d’informations, consultez Informations de référence sur Microsoft Data Access Objects.

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, consultez Référence Microsoft ActiveX Data Objects et Microsoft ActiveX Data Objects (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.

Haut de la page

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, consultez Utilisation de mots clés de chaîne de connexion avec SQL Server Native Client, Notes de publication pour ODBC pour SQL Server sur Windows (V17) et Fonctionnalités du pilote Microsoft ODBC pour SQL Server sur Windows (V13, 11) .

Pilotes ODBC Version Télécharger Nouvelles fonctionnalités
Pilotes ODBC 17.0 à 17.3 SQL Server 2017 Télécharger Pilote ODBC 17.3
Utilisation de Azure Active Directory avec le pilote ODBC
Limitations du pilote ODBC lors de l’utilisation de Always Encrypted
Utilisation des transactions XA
Pilote ODBC 17.2
Utilisation de Always Encrypted avec le pilote ODBC pour SQL Server
Classification des données
Prise en charge du classement et d’Unicode de l’encodage de serveur UTF-8
Pilote ODBC 17.1
Utilisation de Always Encrypted avec le pilote ODBC pour SQL Server
Pilote ODBC 17.0
Toujours chiffré
UseFMTONLY Pour utiliser des métadonnées héritées dans des cas spéciaux nécessitant des tables temporaires. Consultez les notes de publication d’ODBC pour SQL Server sur Windows
Différences lors de l’utilisation de Managed Instance (ODBC version 17)
Pilote ODBC 13.1 SQL Server 2016 SP1, SQL Azure Télécharger Toujours chiffré
Azure Active Directory
Groupes de disponibilité AlwaysOn
Regroupement de connexions compatibles avec les pilotes dans le pilote ODBC pour SQL Server
Pilote ODBC 13.0 SQL Server 2016 Télécharger Nom de domaine internationalisé (IDN)
Pilote ODBC 11.0 SQL Server 2005 à 2012 Télécharger Regroupement de connexions prenant en compte les pilotes
Résilience de connexion dans le pilote ODBC Windows
Exécution asynchrone
Noms de principaux de service (SPN) dans les connexions clientes (ODBC)
Fonctionnalités du pilote Microsoft ODBC pour SQL Server sur Windows

Haut de la page

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, consultez Utilisation de mots clés de chaîne de connexion avec SQL Server Native Client.

Fournisseur OLE DB Version Télécharger Nouvelles fonctionnalités
OLE DB Driver 18.2.1
(MSOLEDBSQL)
SQL Server 2017 Télécharger Pour SQL Server, consultez les notes de fonctionnalité et de publication OLE DB Driver pour SQL Server pour microsoft OLE DB Driver.
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

Haut de la page

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. Nom du pilote tel que retourné par SQLDrivers.
DSN Nom d’une source de données système ou utilisateur ODBC existante. Encrypt Spécifie si les données doivent être chiffrées avant de les envoyer 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 Langue 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.

Haut de la page

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.

Haut de la page

Gérer les sources de données ODBC gérer les tableaux liés