Conectar Access a SQL Server

¿Recuerda los días de su niñez cuando disfrutaba de una sopa de palabras en casa? Si este recuerdo le hace feliz, entonces disfrutará de la versión en forma de base de datos de la sopa de letras. En las secciones siguientes se describen los conceptos básicos para obtener acceso a una base de datos con cadenas de conexión y usar una interfaz de programación de bases de datos con código de VBA de Access.

Componentes del acceso a datos

En este artículo:

Usar el controlador ODBC o el proveedor OLE DB

Utilizar Access como interfaz de programación para SQL Server

Resumen de las versiones de controladores ODBC

Resumen de las versiones del proveedor de OLE DB

Resumen de palabras clave de ODBC

Resumen de palabras clave de OLE DB

Usar el controlador ODBC o el proveedor OLE DB

Las cadenas de conexión llevan mucho tiempo con nosotros. Puede definir una cadena de conexión con formato tanto en la interfaz de usuario de Access como en código VBA. Una cadena de conexión (tanto ODBC como OLE DB) pasa información directamente a la base de datos, como la ubicación del servidor, el nombre de la base de datos, el tipo de seguridad y otras opciones útiles. Por ejemplo:

ODBC;DRIVER=SQL Server;SERVER="MyServer";DATABASE="MyHRdb";TRUSTED_CONNECTION=Yes
Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=MyHRdb; Integrated Security=SSPI;

Al principio existía una biblioteca independiente, SQL Server Native Client (SNAC), que incluía las tecnologías ODBC y OLEDB, y que todavía está disponible para las versiones 2005 a 2012 de SQL Server. Muchas aplicaciones heredadas usan SNAC y todavía se ofrece compatibilidad con versiones anteriores, pero no recomendamos que lo use para el desarrollo de aplicaciones nuevas. Debe usar versiones de los controladores ODBC que se puedan descargar más adelante.

Controladores ODBC

La conectividad abierta de bases de datos (ODBC) es un protocolo que puede usar para conectar una base de datos de Access con un origen de datos externos, como Microsoft SQL Server. Normalmente, se usan los orígenes de datos de archivo (también denominados archivos DSN) para agregar una cadena de conexión, en cuyo caso la palabra clave FILEDSN se usa en la cadena de conexión o se almacena en el registro, en cuyo caso se usa la palabra clave DSN. Como alternativa, puede usar VBA para establecer estas propiedades con una cadena de conexión sin DSN.

A lo largo de los años, los controladores ODBC se han entregado en tres fases:

  • Antes de 2005, los controladores ODBC se entregaban con Windows Data Access Components (WDAC), entonces llamado Microsoft Data Access Components (MDAC). Estos componentes aún se entregan con Windows por motivos de compatibilidad con versiones anteriores. Para obtener más información, Windows Data Access Components (o Microsoft Data Access Components).

  • Controladores ODBC incluidos en SNAC para SQL Server 2005 a través de SQL Server 2012.

  • Después de SQL Server 2012, los controladores ODBC se distribuyen de forma individual y contienen soporte técnico para las nuevas características de SQL Server.

Si desarrolla nuevo software, evite usar controladores ODBC de las dos primeras fases y use controladores ODBC en la tercera fase.

Proveedores OLE DB

Object Linking and Embedding Database (ODBC) es un protocolo más reciente que puede usar para conectar una base de datos de Access con un origen de datos externos, como Microsoft SQL Server. OLE DB no necesita un DSN y también ofrece acceso total a los controladores ODBC y a los orígenes de datos ODBC.

Sugerencia    Por lo general, el cuadro de diálogo Propiedades de vínculo de datos se usa para agregar una cadena de conexión OLE DB. Aunque no se puede abrir el cuadro de diálogo Propiedades de vínculo de datos desde Access, en el explorador de Windows sí puede crear un archivo .txt vacío, cambiar su extensión a .udl y, a continuación, hacer doble clic en el archivo. Después de crear una cadena de conexión, cambie el tipo de archivo de nuevo a .txt.

A lo largo de los años, los controladores OLE DB se han entregado en tres fases:

  • Antes de 2005, los controladores OLE DB se entregaban con Windows Data Access Components (WDAC), entonces llamado Microsoft Data Access Components (MDAC).

  • Los controladores OLE DB entregados con las versiones de SQL Server de 2005 a 2017. Quedó obsoleto en 2011.

  • En 2017, el proveedor de OLE DB de SQL Server dejó de estar obsoleto y comenzó a usarse de nuevo.

La versión recomendada actualmente para desarrollar soluciones nuevas es el controlador OLE DB 18 para SQL Server.

Cómo optimizar el rendimiento con una cadena de conexión ODBC

Para optimizar el rendimiento, minimizar el tráfico de red y reducir el acceso de varios usuarios a la base de datos de SQL Server, utilice el menor número posible de cadenas de conexión. Para ello, comparta las cadenas de conexión entre varios conjuntos de registros. Aunque Access solo pasa una cadena de conexión al servidor, entiende y usa las siguientes palabras clave: DSN, DATABASE, UID, PWD y DRIVER para ayudar a minimizar la comunicación entre cliente y servidor.

Nota    Si se pierde la conexión ODBC a un origen de datos externo, Access intentará volver a conectarse automáticamente. Si la reconexión se realiza correctamente, puede seguir trabajando. Si se produce un error en la reconexión, todavía podrá trabajar con objetos que no se basen en la conexión. Para volver a conectarse, cierre y vuelva a abrir Access.

Recomendaciones al usar ODBC y OLE DB

Evite combinar las tecnologías de cadena de conexión y acceso a bases de datos. Use una cadena de conexión ODBC para DAO. Use una cadena de conexión OLE DB para ADO. Si su aplicación contiene código en VBA que use DAO y ADO, utilice el controlador ODBC para DAO y el proveedor OLE DB para ADO. Intente utilizar la característica y la compatibilidad más reciente para ODBC y OLEDB.

ODBC usa el controlador de términos y OLE DB usa el proveedor de términos. Los términos describen el mismo tipo de componente de software, pero no son intercambiables en la sintaxis de cadena de conexión. En la documentación para ver cómo emplear el valor correcto para cada una.

Inicio de la página

Utilizar Access como interfaz de programación para SQL Server

Hay dos formas de utilizar Access como interfaz de programación para SQL Server.

DAO

Un objeto de acceso de datos (DAO) proporciona una interfaz abstracta para una base de datos. El DAO de Microsoft es el modelo de objetos de programación nativa que le permite acceder al corazón de Access y SQL Server para crear, eliminar, modificar y enumerar objetos, tablas, campos, índices, relaciones, consultas, propiedades y bases de datos externas.

Para obtener más información, Referencia de los objetos de acceso de datos de Microsoft.

ADO

Los objetos de datos de ActiveX (ADO) posibilitan un modelo de programación de alto nivel y están disponibles en Access mediante una referencia a una biblioteca de terceros. ADO es una forma sencilla de aprender y permite a las aplicaciones cliente manipular y acceder a datos desde una amplia variedad de orígenes, incluidos Access y SQL Server. Los principales beneficios son la facilidad de uso, la rapidez, la escasa sobrecarga de memoria y el reducido espacio en disco. ADO también es compatible con características clave para crear aplicaciones basadas en Web.

Para obtener más información, vea la referencia de objetos de datos ActiveX de Microsoft y objetos de datos ActiveX (ADO) de Microsoft.

¿Cuál de ellos debería usar?

En una solución de Access que use código de VBA, puede usar DAO, ADO o ambas como tecnología de interfaz de bases de datos. El acceso a DAO continúa siendo el predeterminado en Access. Por ejemplo, todos los formularios, informes y consultas de Access usan DAO. Sin embargo, al migrar a SQL Server considere la posibilidad de usar ADO para que la solución sea más eficaz. Estas son algunas instrucciones generales que le ayudarán a decidir cuándo usar DAO o ADO.

Use DAO cuando quiera:

  • Crear un formulario vinculado de lectura y escritura sin VBA.

  • Consultar tablas locales.

  • Descargar datos en tablas temporales.

  • Usar consultas de paso a través como orígenes de datos para informes o formularios en modo de solo lectura.

  • Definir y usar un objeto TableDef o QueryDef en VBA.

Use ADO cuando quiera:

  • Aprovechar formas adicionales de optimización, como llevar a cabo de operaciones asincrónicas.

  • Ejecutar consultas de paso a través de DDL y DML.

  • Acceder a los datos de SQL Server directamente con los conjuntos de registros en VBA.

  • Escribir un código más sencillo para algunas tareas, como el streaming de blobs.

  • Llamar a un procedimiento almacenado directamente, con parámetros, mediante un objeto de comando en VBA.

Inicio de la página

Resumen de las versiones de controladores ODBC

En la tabla siguiente se resume información importante sobre las versiones de los controladores ODBC, las ubicaciones de descarga y la compatibilidad con características. Asegúrese de usar la versión de bits correcta (64 bits o 32 bits) del controlador, basándose en Windows y no en Office. Si está ejecutando Access de 32 bits en Windows de 64 bits, instale los controladores de 64 bits, pues incluyen los componentes de 32 bits necesarios para Access.

Para obtener más información, consulte Usar palabras clave de cadena de conexión con SQL Server Native Client, Notas sobre ODBC a SQL Server en Windows (V17) y Características de Microsoft ODBC Driver for SQL Server en Windows (V13, 11).

Controladores ODBC

Versión

Descargar

Nuevas características

Controladores ODBC 17.0 a 17.3

SQL Server 2017

Descargar

Controladores ODBC 17.3

Cómo usar Azure Active Directory con el controlador ODBC

Limitaciones del controlador ODBC cuando se usa Always Encrypted

Uso de transacciones XA

Controlador ODBC 17.2

Uso de Always Encrypted con el controlador ODBC de SQL Server

Clasificación

Intercalación de servidor UTF-8 y compatibilidad con Unicode

Controlador ODBC 17.1

Uso de Always Encrypted con el controlador ODBC de SQL Server

Controlador ODBC 17.0

Always Encrypted

Uso de FMTONLY    Usar metadatos antiguos en casos especiales que requieran tablas temporales. Vea Notas de ODBC para SQL Server en Windows

Diferencias al usar una instancia administrada (ODBC versión 17)

Controlador ODBC 13.1

SQL Server 2016 SP1, SQL Azure

Descargar

Always Encrypted

Azure Active Directory

Grupos de disponibilidad AlwaysOn

Agrupación de conexiones preparada para controladores en el controlador ODBC de SQL Server

Controlador ODBC 13.0

SQL Server 2016

Descargar

Nombre de dominio internacionalizado (IDN)

Controlador ODBC 11.0

SQL Server 2005 a 2012

Descargar

Agrupación de conexiones preparada para controladores

Resistencia de conexión en el controlador ODBC de Windows

Ejecución asincrónica

Nombres de entidad de seguridad de servicio (SPN) en Conexiones de cliente (ODBC).

Características de Microsoft ODBC Driver for SQL Server en Windows

Inicio de la página

Resumen de las versiones del proveedor de OLE DB

En la tabla siguiente se resume información importante sobre las versiones de los proveedores OLE DB, las ubicaciones de descarga y la compatibilidad con características. Asegúrese de usar la versión de bits correcta (64 bits o 32 bits) del controlador, basándose en Windows y no en Office. Si está ejecutando Access de 32 bits en Windows de 64 bits, instale los controladores de 64 bits, pues incluyen los componentes de 32 bits necesarios para Access.

Para obtener más información, consulte Uso de palabras clave de cadena de conexión con SQL Server Native Client.

Proveedor OLE DB

Versión

Descargar

Nuevas características

Controlador de OLE DB 18.2.1

(MSOLEDBSQL)

SQL Server 2017

Descargar

Controlador OLE DB para característica de SQL Server y Notas para controlador de Microsoft OLE DB para SQL Server

SQL Server Native Client (SQLNCLI)

SQL Server 2005 a 2012

Obsoleto, se desaconseja su uso

Controlador OLE DB (SQLOLEDB)

Obsoleto, se desaconseja su uso

Inicio de la página

Resumen de palabras clave de ODBC

La siguiente tabla resume las palabras clave de ODBC reconocidas por SQL Server y su finalidad. Access solo reconoce un subconjunto de ellas.

Palabra clave:

Descripción

Dir

La dirección de red del servidor en el que se ejecuta una instancia de SQL Server.

AnsiNPW

Especifica el uso de comportamientos definidos en ANSI para tratar con comparaciones de NULOS, advertencias, relleno de datos de caracteres, advertencias y concatenación de NULOS (sí o no).

APP

Nombre de la aplicación que llama a SQLDriverConnect.

ApplicationIntent

Declara el tipo de carga de trabajo de la aplicación al conectarse a un servidor (ReadOnly o ReadWrite).

AttachDBFileName

Nombre del archivo principal de una base de datos adjuntable.

AutoTranslate

Especifica si las cadenas de caracteres ANSI se envían entre el cliente o el servidor o se traducen a Unicode (sí o no).

Database

El nombre de la base de datos. Description El propósito de la conexión. Driver Nombre del controlador devuelto por SQLDrivers.

DSN

El nombre de un usuario o un origen de datos de sistema ODBC existente. Encrypt Especifique si los datos deben cifrarse antes de enviarse a través de la red (sí o no).

Failover_Partner

Nombre del servidor asociado de conmutación por error que se usará en caso de que no se pueda establecer una conexión con el servidor principal.

FailoverPartnerSPN

El SPN del asociado de conmutación por error.

Fallback

Palabra clave obsoleta.

FileDSN

El nombre de un origen de datos de archivo ODBC existente. Language El idioma de SQL Server.

MARS_Connection

Especifica los conjuntos de resultados activos múltiples (MARS) en la conexión de SQL Server 2005 (9.x) o posterior (sí o no).

MultiSubnetFailover

Especifica si desea que se conecte al agente de escucha del grupo de disponibilidad de un grupo de disponibilidad de SQL Server o una instancia de clúster de conmutación por error (sí o no).

Net

dbnmpntw indica las canalizaciones con nombre y dbmssocn indica TCP/IP.

PWD

La contraseña de inicio de sesión de SQL Server.

QueryLog_On

Especifica si desea mantener un registro de consultas de larga ejecución (sí o no).

QueryLogFile

La ruta de acceso completa y el nombre de un archivo que se usa para registrar datos en consultas de larga ejecución.

QueryLogTime

Cadena de dígitos que especifica el umbral (en milisegundos) para registrar consultas de larga duración.

QuotedId

Especifica si SQL Server usa las reglas ISO en lo que respecta al uso de comillas en las instrucciones SQL (sí o no).

Regional

Especifica si el controlador ODBC de SQL Server Native Client usa la configuración de cliente al convertir datos de divisa, fecha u hora en datos de caracteres (sí o no).

SaveFile

Nombre de un archivo de origen de datos ODBC en el que se guardarán los atributos de la conexión actual si la conexión se ha realizado correctamente.

Server

El nombre de una instancia de SQL Server: Servidor en la red, una dirección IP o un alias de Configuration Manager.

ServerSPN

El SPN del servidor.

StatsLog_On

Habilita la captura de datos de rendimiento del controlador ODBC de SQL Server Native Client.

StatsLogFile

La ruta de acceso completa y el nombre de un archivo que se usa para registrar las estadísticas de rendimiento del controlador ODBC de SQL Server Native Client.

Trusted_Connection

Especifica si se usa el modo de autenticación de Windows o el nombre de usuario o la contraseña de SQL Server para la validación de inicio de sesión (sí o no).

TrustServerCertificate

Cuando se usa con Encrypt, habilita el cifrado con un certificado de servidor autofirmado.

UID

El nombre de inicio de sesión de SQL Server.

UseProcForPrepare

Palabra clave obsoleta.

WSID

El identificador de la estación de trabajo, el nombre de red del equipo en el que se encuentra la aplicación.

Inicio de la página

Resumen de palabras clave de OLE DB

La siguiente tabla resume las palabras clave de OLE DB reconocidas por SQL Server y su finalidad. Access solo reconoce un subconjunto de ellas.

Palabra clave:

Description

Dir

La dirección de red del servidor en el que se ejecuta una instancia de SQL Server.

APP

Cadena que identifica la aplicación.

ApplicationIntent

Declara el tipo de carga de trabajo de la aplicación al conectarse a un servidor (ReadOnly o ReadWrite).

AttachDBFileName

Nombre del archivo principal de una base de datos adjuntable.

AutoTranslate

Configura la conversión de caracteres OEM/ANSI (verdadero o falso).

Connect Timeout

Cantidad de tiempo (en segundos) que se esperará hasta que se complete la inicialización del origen de datos.

Current Language

El nombre del idioma de SQL Server.

Data Source

El nombre de una instancia de SQL Server en la organización.

Database

El nombre de la base de datos.

DataTypeCompatibility

Un número que indica el modo de administración de los tipo de datos que se va a usar.

Encrypt

Especifique si los datos deben cifrarse antes de enviarse a través de la red (sí o no).

FailoverPartner

El nombre del servidor de conmutación por error usado para la creación de reflejo de la base de datos.

FailoverPartnerSPN

El SPN del asociado de conmutación por error.

Initial Catalog

El nombre de la base de datos.

Initial File Name

El nombre del archivo principal (incluido el nombre completo de la ruta de acceso) de una base de datos que se puede adjuntar.

Integrated Security

Se utiliza para la autenticación de Windows (SSPI).

Language

El idioma de SQL Server.

MarsConn

Especifica los conjuntos de resultados activos múltiples (MARS) en la conexión de SQL Server 2005 (9.x) o posterior (sí o no).

Net

Biblioteca de red usada para establecer una conexión con una instancia de SQL Server en la organización.

Network Address

La direcciones de red de una instancia de SQL Server en la organización.

PacketSize

Tamaño de paquete de red. El valor predeterminado es 4096.

Persist Security Info

Especifica si la seguridad persistente está habilitada (verdadero o falso).

PersistSensitive

Especifica si la confidencialidad persistente está habilitada (verdadero o falso).

Provider

Para SQL Server Native Client debe ser SQLNCLI11.

PWD

La contraseña de inicio de sesión de SQL Server.

Server

El nombre de una instancia de SQL Server: Servidor en la red, una dirección IP o un alias de Configuration Manager.

ServerSPN

El SPN del servidor.

Timeout

Cantidad de tiempo (en segundos) que se esperará hasta que se complete la inicialización del origen de datos.

Trusted_Connection

Especifica si se usa el modo de autenticación de Windows o el nombre de usuario o la contraseña de SQL Server para la validación de inicio de sesión (sí o no).

TrustServerCertificate

Especifica si un certificado de servidor está validado (verdadero o falso).

UID

El nombre de inicio de sesión de SQL Server.

Use Encryption for Data

Especifique si los datos deben cifrarse antes de enviarse a través de la red (verdadero o falso).

UseProcForPrepare

Palabra clave obsoleta.

WSID

El identificador de la estación de trabajo, el nombre de red del equipo en el que se encuentra la aplicación.

Inicio de la página

Vea también

Administrar orígenes de datos ODBC

Administrar tablas vinculadas

Ampliar sus conocimientos de Office
Explorar los cursos
Obtener nuevas características primero
Únase a los participantes de Office Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×