Ligar o Access ao SQL Server

Relembre os dias felizes da sua infância quando a sopa de letras era a sua refeição divertida. Mantenha estes pensamentos felizes em mente à medida que provamos um pouco da versão de base de dados da sopa de letras. As secções seguintes explicam as noções básicas sobre como chegar a uma base de dados com cadeias de ligação e como utilizar uma interface de programação de base de dados no seu código VBA do Access.

Componentes de acesso a dados

Neste Artigo

Utilizar um controlador ODBC ou o fornecedor OLE DB

Interface programática para SQL Server a partir do Access

Resumo das versões de controladores ODBC

Resumo das versões de fornecedor OLE DB

Resumo de palavras-chave do ODBC

Resumo de palavras-chave do OLE DB

Utilizar um controlador ODBC ou o fornecedor OLE DB

As cadeias de ligação já existem há bastante tempo. Pode definir uma cadeia de ligação formatada na interface de utilizador do Access ou em código VBA. Uma cadeia de ligação (quer seja ODBC ou OLE DB) passa informações diretamente para a base de dados, como a localização do servidor, o nome da base de dados, o tipo de segurança e outras opções úteis. Por exemplo:

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

Inicialmente, o SQL Server Native Client (SNAC) era uma biblioteca autónoma que continha tecnologias ODBC e OLEDB e ainda está disponível para as versões de 2005 a 2012 do SQL Server. Muitas aplicações legadas usavam o SNAC e ainda são suportadas por questões de compatibilidade com versões anteriores, mas não recomendamos que a utilize para o desenvolvimento de novas aplicações. Deve utilizar versões individuais mais recentes e transferíveis dos controladores ODBC.

Controladores ODBC

O ODBC (Open Database Connectivity) é um protocolo que pode utilizar para ligar uma base de dados do Access a uma origem de dados externa, como o Microsoft SQL Server. Normalmente, as origens de dados de ficheiros (também denominadas ficheiros DSN) são utilizadas para adicionar uma cadeia de ligação e, nesse caso, a palavra-chave FILEDSN é utilizada na cadeia de ligação ou armazenada no registo e, nesse caso, é utilizada a palavra-chave DSN. Em alternativa, pode utilizar o VBA para definir estas propriedades através de uma cadeia de ligação "sem DSN".

Ao longo dos anos, os controladores ODBC foram enviados em três fases:

  • Antes de 2005, os controladores ODBC eram enviados com o Windows Data Access Components (WDAC), que eram originalmente denominados Microsoft Data Access Components (MDAC). Estes componentes ainda são enviados com o Windows por questões de compatibilidade com versões anteriores. Para obter mais informações, consulte Microsoft ou Windows Data Access Components.

  • Controladores ODBC enviados com o SNAC para o SQL Server 2005 a SQL Server 2012.

  • Após o SQL Server 2012, os controladores ODBC foram enviados individualmente e contêm suporte para novas funcionalidades do SQL Server.

Para novo desenvolvimento, evite utilizar os controladores ODBC das duas primeiras fases e utilize os controladores ODBC da terceira fase.

Fornecedores OLE DB

O OLE DB (Object Linking and Embedding, Database) é um protocolo mais recente que pode utilizar para ligar uma base de dados do Access a uma origem de dados externa, como o Microsoft SQL Server. O OLE DB não necessita de um DSN e também fornece acesso completo às origens de dados ODBC e aos controladores ODBC.

Sugestão    Normalmente, pode utilizar a caixa de diálogo Propriedades de Ligação de Dados para adicionar uma cadeia de ligação OLE DB. Apesar de não ser possível abrir a caixa de diálogo Propriedades de Ligação de Dados a partir do Access, no Explorador do Windows, pode criar um ficheiro .txt vazio, alterar o tipo de ficheiro para .udl e, em seguida, fazer duplo clique no ficheiro. Depois de criar uma cadeia de ligação, altere o tipo de ficheiro de volta para .txt.

Ao longo dos anos, os fornecedores OLE DB foram enviados em três fases:

  • Antes de 2005, os fornecedores OLE DB eram enviados com o Windows Data Access Components (WDAC), que eram originalmente denominados Microsoft Data Access Components (MDAC).

  • Fornecedores OLE DB enviados com o SQL Server 2005 a SQL Server 2017. Foi preterido em 2011.

  • Em 2017, o fornecedor OLE DB do SQL Server deixou de estar preterido.

A versão recomendada atualmente para o desenvolvimento de novas soluções é o OLE DB Driver 18 para SQL Server.

Como otimizar o desempenho com uma cadeia de ligação ODBC

Para otimizar o desempenho, minimizar o tráfego de rede e reduzir o acesso de múltiplos utilizadores à base de dados do SQL Server, utilize o mínimo de cadeias de ligação possível ao partilhar cadeias de ligação em múltiplos conjuntos de registos. Apesar de o Ace simplesmente transmitir uma cadeia de ligação para o servidor, este irá compreender e utilizar as seguintes palavras-chave: DSN, DATABASE, UID, PWD, e DRIVER para ajudar a minimizar a comunicação entre cliente e servidor.

Nota    Se for perdida uma ligação ODBC a uma origem de dados externa, o Access tenta restabelecer automaticamente a ligação à mesma. Se a tentativa tiver êxito, poderá continuar a trabalhar. Se a tentativa falhar, pode continuar a trabalhar com objetos que não dependam da ligação. Para voltar a ligar, feche e abra novamente o Access.

Recomendações ao utilizar ODBC e OLE DB

Evite misturar cadeias de ligação e tecnologias de acesso à base de dados. Utilize uma cadeia de ligação ODBC para o DAO. Utilize uma cadeia de ligação OLE DB para o ADO. Se a aplicação contiver código VBA que utilize tanto DAO como ADO, utilize o controlador ODBC para o DAO e o fornecedor OLE DB para o ADO. Esteja empenhado em obter as funcionalidades e suportes mais recentes para o ODBC e para o OLEDB respectivamente.

O ODBC utiliza o termo controlador e OLE DB utiliza o termo fornecedor. Os termos descrevem o mesmo tipo de componente de software, mas não são intercambiáveis na sintaxe da cadeia de ligação. Utilize o valor correto conforme documentado.

Início da Página

Interface programática para SQL Server a partir do Access

Existem duas formas principais de interface programática para uma base de dados do SQL Server a partir do Access.

DAO

Um objeto de acesso a dados (DAO) fornece uma interface abstrata para uma base de dados. O Microsoft Data Access Objects (DAO) é o modelo de objeto de programação nativa que lhe permite usufruir ao máximo do Access e do SQL Server para criar, eliminar, modificar e listar objetos, tabelas, campos, índices, relações, consultas, propriedades e bases de dados externas.

Para obter mais informações, consulte Microsoft Data Access Objects.

ADO

O ActiveX Data Objects (ADO) fornece um modelo de programação de alto nível e está disponível no Access através de uma referência a uma biblioteca de terceiros. O ADO é simples de aprender e permite às aplicações cliente aceder e manipular dados a partir de uma variedade de origens, incluindo o Access e o SQL Server. Os seus principais benefícios são facilidade de utilização, alta velocidade, sobrecarga de memória baixa e ocupar pouco espaço no disco. O ADO também suporta funcionalidades chave de criação e de aplicações baseadas na Web.

Para obter mais informações, consulte a referência do Microsoft ActiveX Data Objects e o Microsoft ActiveX Data Objects (ADO).

Qual deles deverá utilizar?

Numa solução do Access que utilize o código VBA, pode utilizar o DAO, o ADO ou ambos como a sua tecnologia de interface de base de dados. O DAO continua a ser o predefinido no Access. Por exemplo, todos os formulários, relatórios e consultas do Access utilizam o DAO. Mas quando migra para o SQL Server, considere usar o ADO para tornar a sua solução mais eficiente. Eis algumas diretrizes gerais para o ajudar a decidir quando utilizar o DAO ou o ADO.

Utilize o DAO quando pretender:

  • Criar um formulário de associação de leitura/escrita sem utilizar o VBA.

  • Consultar tabelas locais.

  • Transferir dados para tabelas temporárias.

  • Utilizar consultas pass-through como origens de dados para relatórios ou formulários no modo só de leitura.

  • Definir e utilizar um objeto TableDef ou Querydef no VBA.

Utilize o ADO quando pretender:

  • Tirar partido de formas adicionais para a otimização, como efetuar operações assíncronas.

  • Executar consultas pass-through de DDL e de DML.

  • Obter dados do SQL Server diretamente através de conjuntos de registos no VBA.

  • Escrever código mais simples para determinadas tarefas, tais como a transmissão de Blobs.

  • Chamar um procedimento armazenado diretamente, com parâmetros, através de um objeto de comando no VBA.

Início da Página

Resumo das versões de controladores ODBC

A seguinte tabela resume informações importantes sobre as versões de controladores ODBC, localizações de transferências e suporte de funcionalidades. Certifique-se de que utiliza a versão de bits correta (64 bits ou 32 bits) do controlador baseada no Windows e não no Office. Se estiver a executar a versão de 32 bits do Access na versão de 64 bits do Windows, instale os controladores de 64 bits, que incluem os componentes de 32 bits necessários para o Access.

Para obter mais informações, consulte Utilizar Palavras-Chave de Cadeia de Ligação com o SQL Server Native Client, Notas de Versão do ODBC para o SQL Server no Windows (v17) e Funcionalidades do Microsoft ODBC Driver para SQL Server no Windows (v13,11).

Controladores ODBC

Versão

Transferir

Novas funcionalidades

Controladores ODBC 17.0 a 17.3

SQL Server 2017

Transferir

ODBC Driver 17.3

Utilizar o Azure Active Directory com o controlador ODBC

Limitações do controlador ODBC quando utilizar o Always Encrypted

Utilizar Transações de XA

ODBC Driver 17.2

Utilizar o Always Encrypted com o Controlador ODBC para SQL Server

Classificação dos Dados

Agrupamento de codificação de servidor UTF-8 e Suporte Unicode

ODBC Driver 17.1

Utilizar o Always Encrypted com o Controlador ODBC para SQL Server

ODBC Driver 17.0

Always Encrypted

UseFMTONLY    Para utilizar metadados legados em casos especiais que requerem tabelas temporárias. Ver as Notas de Versão do ODBC para o SQL Server no Windows

Diferenças ao utilizar a Instância Gerida (versão do ODBC 17)

ODBC Driver 13.1

SQL Server 2016 SP1, SQL Azure

Transferir

Always Encrypted

Azure Active Directory

Grupos de Disponibilidade AlwaysOn

Agrupamento de Ligações com Reconhecimento de Controladores no ODBC Driver para SQL Server

ODBC Driver 13.0

SQL Server 2016

Transferir

Nome de Domínio Internacionalizado (IDN)

ODBC Driver 11.0

SQL Server 2005 a 2012

Transferir

Agrupamento de Ligações com Reconhecimento de Controladores

Resiliência da Ligação no Controlador ODBC do Windows

Execução Assíncrona

Nomes dos Principais do Serviço (SPNs) nas Ligações de Cliente (ODBC)

Funcionalidades do Microsoft ODBC Driver para SQL Server no Windows

Início da Página

Resumo das versões de fornecedor OLE DB

A seguinte tabela resume informações importantes sobre as versões de fornecedores OLE DB, localizações de transferências e suporte de funcionalidades. Certifique-se de que utiliza a versão de bits correta (64 bits ou 32 bits) do controlador baseada no Windows e não no Office. Se estiver a executar a versão de 32 bits do Access na versão de 64 bits do Windows, instale os controladores de 64 bits, que incluem os componentes de 32 bits necessários para o Access.

Para obter mais informações, consulte Utilizar Palavras-Chave de Cadeia de Ligação com o SQL Server Native Client.

Fornecedor OLE DB

Versão

Transferir

Novas funcionalidades

OLE DB Driver 18.2.1

(MSOLEDBSQL)

SQL Server 2017

Transferir

Consulte a Funcionalidade OLE DB Driver para SQL Server e as Notas de versão do Microsoft OLE DB Driver para SQL Server

SQL Server Native Client (SQLNCLI)

SQL Server 2005 a 2012

Preterido, não utilize

OLE DB Driver (SQLOLEDB)

Preterido, não utilize

Início da Página

Resumo de palavras-chave do ODBC

A seguinte tabela resume as palavras-chave do ODBC reconhecidas pelo SQL Server e o objetivo delas. Apenas um subconjunto é reconhecido pelo Access.

Palavra-chave

Descrição

Addr

O endereço de rede do servidor que executa uma instância do SQL Server.

AnsiNPW

Especifica a utilização de comportamentos definidos por ANSI para lidar com comparações de valores NULL, caracteres de preenchimento de dados, avisos e concatenação de valores NULL (Sim ou Não).

APP

Nome da aplicação que chama SQLDriverConnect.

ApplicationIntent

Declara o tipo de carga de trabalho da aplicação ao ligar a um servidor (ReadOnly ou ReadWrite).

AttachDBFileName

Nome do ficheiro principal de uma base de dados anexada.

AutoTranslate

Especifica se as cadeias de carateres ANSI são enviadas entre o cliente ou servidor ou traduzidas para Unicode (Sim ou Não).

Base de dados

Nome da base de dados. Descrição O objetivo da ligação. Controlador Nome do controlador tal como devolvido por SQLDrivers.

DSN

Nome de um utilizador ou origem de dados do sistema ODBC existente. Encriptar Especifica se os dados devem ser encriptados antes de os enviar através da rede (Sim ou Não).

Failover_Partner

Nome do servidor parceiro de ativação pós-falha a ser utilizado se não for possível efetuar uma ligação ao servidor principal.

FailoverPartnerSPN

O SPN do parceiro de ativação pós-falha.

Fallback

Palavra-chave preterida.

FileDSN

Nome de uma origem de dados do ficheiro ODBC existente. Linguagem A linguagem do SQL Server.

MARS_Connection

Especifica múltiplos conjuntos de resultados ativos (MARS) na ligação para o SQL Server 2005 (9.x) ou posterior (Sim ou Não).

MultiSubnetFailover

Especifica se deve ligar ao serviço de escuta do grupo de disponibilidade de um grupo de disponibilidade do SQL Server ou uma Instância do Cluster de Ativação Pós-falha (Sim ou não).

Net

dbnmpntw indica pipes com nomes e dbmssocn indica TCP/IP.

PWD

Palavra-passe de início de sessão do SQL Server.

QueryLog_On

Especifica o registo das consultas de execução longa (Sim ou Não).

QueryLogFile

Caminho completo e nome de ficheiro de um ficheiro para utilizar para registar dados em consultas de execução longa.

QueryLogTime

Cadeia de carateres de dígitos que especifica o limiar (em milissegundos) para o registo de consultas de execução longa.

QuotedId

Especifica se o SQL Server utiliza as regras ISO relativamente à utilização de aspas nas instruções SQL (Sim ou Não).

Regional

Especifica se o controlador ODBC do SQL Server Native Client utiliza as definições do cliente ao converter dados de moeda, data ou hora em dados de carateres (Sim ou Não).

SaveFile

Nome de um ficheiro de origem de dados ODBC no qual os atributos da ligação atual são guardados se a ligação for efetuada com êxito.

Servidor

O nome de uma instância do SQL Server: Servidor na rede, um endereço IP ou um alias do Configuration Manager.

ServerSPN

O SPN para o servidor.

StatsLog_On

Ativa a captura de dados de desempenho de controladores ODBC do SQL Server Native Client.

StatsLogFile

Caminho completo e nome de ficheiro de um ficheiro utilizado para registar estatísticas de desempenho do controlador ODBC do SQL Server Native Client.

Trusted_Connection

Especifica se o Modo de Autenticação do Windows ou o nome de utilizador ou palavra-passe do SQL Server é utilizado para validação da sessão (Sim ou Não).

TrustServerCertificate

Quando utilizado com Encriptar, ativa a encriptação através de um certificado de servidor auto-assinado.

UID

O nome de início de sessão do SQL Server.

UseProcForPrepare

Palavra-chave preterida.

WSID

O identificador de estação de trabalho, o nome de rede do computador onde se encontra a aplicação.

Início da Página

Resumo de palavras-chave do OLE DB

A seguinte tabela resume as palavras-chave do OLE DB reconhecidas pelo SQL Server e o objetivo delas. Apenas um subconjunto é reconhecido pelo Access.

Palavra-chave

Descrição

Addr

O endereço de rede do servidor que executa uma instância do SQL Server.

APP

A cadeia que identifica a aplicação.

ApplicationIntent

Declara o tipo de carga de trabalho da aplicação ao ligar a um servidor (ReadOnly ou ReadWrite).

AttachDBFileName

Nome do ficheiro principal de uma base de dados anexada.

AutoTranslate

Configura a tradução de carateres OEM/ANSI (Verdadeiro ou Falso).

Tempo limite da ligação

O período de tempo (em segundos) para aguardar a conclusão da inicialização da origem de dados.

Linguagem atual

A nome da linguagem do SQL Server.

Origem de Dados

O nome de uma instância do SQL Server na organização.

Base de dados

Nome da base de dados.

DataTypeCompatibility

Um número que indica o modo de manipulação do tipo de dados que será utilizado.

Encriptar

Especifica se os dados devem ser encriptados antes de os enviar através da rede (Sim ou Não).

FailoverPartner

O nome do servidor de ativação pós-falha utilizado para o espelhamento de base de dados.

FailoverPartnerSPN

O SPN do parceiro de ativação pós-falha.

Catálogo Inicial

Nome da base de dados.

Nome de Ficheiro Inicial

O nome do ficheiro principal (inclua o nome do caminho completo) de uma base de dados anexada.

Segurança Integrada

Utilizado para a Autenticação do Windows (SSPI).

Linguagem

A linguagem do SQL Server.

MarsConn

Especifica múltiplos conjuntos de resultados ativos (MARS) na ligação para o SQL Server 2005 (9.x) ou posterior (Sim ou Não).

Net

A biblioteca de rede utilizada para estabelecer uma ligação a uma instância do SQL Server na organização.

Endereço de Rede

O endereço de rede de uma instância do SQL Server na organização.

PacketSize

Tamanho do pacote de rede. O predefinido é 4096.

Informação de Persistir Segurança

Especifica se Persistir Segurança está ativado (Verdadeiro ou Falso).

PersistSensitive

Especifica se persistir sensitivo está ativado (Verdadeiro ou Falso).

Fornecedor

Para o SQL Server Native Client, deve ser SQLNCLI11.

PWD

Palavra-passe de início de sessão do SQL Server.

Servidor

O nome de uma instância do SQL Server: Servidor na rede, um endereço IP ou um alias do Configuration Manager.

ServerSPN

O SPN para o servidor.

Tempo limite

O período de tempo (em segundos) para aguardar a conclusão da inicialização da origem de dados.

Trusted_Connection

Especifica se o Modo de Autenticação do Windows ou o nome de utilizador ou palavra-passe do SQL Server é utilizado para validação da sessão (Sim ou Não).

TrustServerCertificate

Especifica se um certificado de servidor é validado (Verdadeiro ou Falso).

UID

O nome de início de sessão do SQL Server.

Utilizar Encriptação para dados

Especifica se os dados devem ser encriptados antes de os enviar através da rede (Verdadeiro ou Falso).

UseProcForPrepare

Palavra-chave preterida.

WSID

O identificador de estação de trabalho, o nome de rede do computador onde se encontra a aplicação.

Início da Página

Consulte Também

Administrar origens de dados ODBC

Gerir tabelas ligadas

Aumente os seus conhecimentos do Office
Explore as formações
Seja o primeiro a obter novas funcionalidades
Adira ao Office Insider

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×