Pode utilizar o Access como uma aplicação de front-end e, em seguida, ligar a tabelas num servidor de back-end, como o SQL Server. Por predefinição, a maioria das consultas é executada localmente no motor de base de dados ACE do Access. Em alguns casos, o Access pode executar uma consulta remotamente no SQL Server, consoante a sintaxe SQL e outros fatores. Para obter mais informações, veja "JET Database Engine Version 3.0: ODBC Connectivity" em White papers ODBC e JET Redescobertos.
No entanto, muitas vezes, quer executar explicitamente uma consulta num servidor de bases de dados. Pode fazê-lo para ajudar a melhorar o desempenho: os servidores de bases de dados têm maior poder de processamento do que um computador de secretária e pode devolver um subconjunto de dados mais pequeno através da ligação de rede. Para executar uma consulta num servidor de base de dados, utilize um consulta passagem que seja uma instrução Transact SQL (TSQL) que se liga ao SQL Server com uma cadeia de ligação ODBC. Por exemplo, pode transmitir uma instrução SELECT para devolver dados a uma folha de dados, formulário, relatório ou controlo de lista, executar o equivalente a consultas de ação (instruções DML (Data Manipulation Language), chamar procedimentos armazenados e realizar tarefas administrativas (DDL (Data Definition Language).
Observação Os resultados de uma consulta pass-through são só de leitura. Para editar dados diretamente numa folha de dados ou formulário, crie uma tabela ligada para uma vista indexada. Para obter mais informações, veja Criar Vistas Indexadas.
-
Ligar a uma base de dados de servidor.
Para obter mais informações sobre a ligação ao SQL Server, veja Importar ou ligar a dados numa base de dados do SQL Server e Ligar ou importar dados a partir de uma Base de Dados do SQL Server do Azure.
-
Selecione Criar > Design da Consulta.
-
Se necessário, feche a caixa de diálogo Adicionar Tabelas (Mostrar Tabela no Access).
-
Selecione Estrutura >Pass-Through.
O Access oculta a grelha de estrutura da consulta e apresenta a Vista SQL.
-
Se a folha de propriedades da consulta não for apresentada, prima F4 para a apresentar.
-
Na folha de propriedades, clique na caixa de propriedadeSODBC Connect Str e, em seguida, efetue um dos seguintes procedimentos:
Para obter uma cadeia de ligação:
-
No painel de navegação, clique com o botão direito do rato numa tabela ligada à origem de dados pretendida e selecione Gestor de Tabelas Ligadas.
-
Na caixa de diálogo Gestor de Tabelas Ligadas , selecione a caixa de verificação da origem de dados e, em seguida, selecione Editar.
-
Na caixa de diálogo Editar Ligação , copie o texto na caixa Cadeia de ligação .
-
Selecione Criar .
-
Siga as instruções para criar um ficheiro DSN que contém as informações da cadeia de ligação. Para obter passos detalhados, veja Importar ou ligar a dados numa base de dados do SQL Server e Ligar ou importar dados a partir de uma Base de Dados do SQL Server do Azure.
Depois de criar uma ligação de ficheiro DSN, a cadeia de ligação ODBC é armazenada internamente na base de dados do Access. Eis um truque para obter uma cópia dessa cadeia:
-
Localize um nome de tabela ligado no Painel de Navegação com a ligação ODBC pretendida.
-
Prima Ctrl+G. para abrir a janela VBA Imediato.
-
Introduza: o seguinte código:
?CurrentDb.TableDefs("<table name>").Connect
No entanto, substitua <nome da tabela> o nome da tabela ligada do passo a.
-
Copie a cadeia devolvida para a propriedade ODBC Connect Str .
-
-
Introduza a consulta na Vista SQL.
Observação: Existem diferenças importantes entre o SQL do Access e o TSQL do SQL Server, especialmente com sintaxe, nomes de funções e argumentos de função. Para saber mais, confira Comparar o SQL do Access com o SQL Server TSQL.
Dica Crie primeiro a consulta TSQL no SQL Server Management Studio e, em seguida, copie e cole o SQL na Vista SQL. Isto garante que a consulta tem a sintaxe correta. Se não tiver acesso conveniente a uma Base de Dados do SQL Server, considere instalar a edição Microsoft SQL Server Express no seu ambiente de trabalho, que suporta até 10 GB e é uma forma gratuita e fácil de executar e verificar a sua migração.
-
Considere definir propriedades relacionadas adicionais:
-
Devolve Registos Algumas instruções SQL devolvem registos, como SELECT, e outras não, como UPDATE. Se a consulta devolver registos, defina esta propriedade como Sim; Se a consulta não devolver registos, defina esta propriedade como Não.
Observação As consultas pass-through podem devolver vários conjuntos de resultados, mas numa folha de dados, formulário, relatório ou variável de conjunto de registos, só é utilizado o primeiro conjunto de resultados. Para obter vários conjuntos de resultados, utilize uma consulta criar tabela , como mostra o seguinte exemplo:
SELECT <pass-through query name>.* INTO <local table name> FROM < pass-through query name >
Tem de utilizar o asterisco (*) porque cada conjunto de resultados pode ter colunas diferentes. Cada conjunto de resultados é guardado numa tabela separada e os números são anexados aos nomes das tabelas locais em conformidade. Por exemplo, se forem devolvidos três conjuntos de resultados, os nomes das tabelas seriam: <nome da tabela local>, <nome da tabela local>1, <nome da tabela local>2.
-
Mensagens de Registo Especifique se pretende devolver mensagens da base de dados SQL numa tabela de mensagens do Access. O nome da tabela tem o formato, nome de utilizador – nn, em que nome de utilizador é o nome de início de sessão do utilizador atual e nn é um número que começa em 00.
-
Tempo Limite ODBC Especifique o número de segundos a aguardar antes de ocorrer um erro de tempo limite quando uma consulta é executada. O valor padrão é 60 segundos. Podem ocorrer atrasos devido ao tráfego de rede ou à utilização intensiva do servidor de bases de dados.
-
Máximo de Registos Especifique o número máximo de registos a devolver. Pode ter recursos de sistema limitados ou testar os resultados com apenas uma pequena quantidade de dados.
-
-
Quando terminar de introduzir a consulta, selecione Estrutura > Executar. A consulta é enviada para o servidor de bases de dados para processamento.