Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Se quiser usar as suas aplicações Access existentes com SQL Server, pode ligar as suas tabelas Access originais às tabelas SQL Server ou Azure SQL migradas. A ligação modifica a sua base de dados Access para que as suas consultas, formulários, relatórios e páginas de acesso a dados utilizem os dados do SQL Server ou Azure SQL Database em vez dos dados da sua base de dados Access.
Observação
As suas tabelas do Access permanecem no Access, mas não são atualizadas juntamente com as atualizações no SQL Server ou no Azure SQL. Depois de ligares as tabelas e verificares a funcionalidade, talvez queiras eliminar as tuas tabelas Access.
Acesso a links e tabelas do SQL Server
Quando ligas uma tabela Access a uma tabela SQL Server ou Azure SQL, o motor de base de dados Jet armazena informação de ligação e metadados da tabela, mas os dados são armazenados no SQL Server ou Azure SQL. Esta ligação permite que as suas aplicações Access operem contra as tabelas de Acesso mesmo que as tabelas e dados reais estejam no SQL Server ou Azure SQL.
Observação
Se usar autenticação SQL Server, a sua palavra-passe é armazenada em texto claro nas tabelas de acesso ligadas. Use autenticação Windows em vez disso.
No Access Metadata Explorer, selecione as tabelas que quer ligar.
Clique com o botão direito em Tabelas e depois selecione Link.
O SQL Server Migration Assistant (SSMA) para Access faz backup da tabela Access original e cria uma tabela ligada.
Depois de ligares as tabelas, as tabelas no SSMA aparecem com um pequeno ícone de ligação. No Access, as tabelas aparecem com um ícone "ligado", que é um globo com uma seta a apontar para ele.
Quando abres uma tabela no Access, os dados são recuperados usando um cursor de keyset. Como resultado, para tabelas grandes, os dados não são recuperados todos de uma vez. No entanto, à medida que navega pela tabela, o Access recupera mais dados conforme necessário.
Importante
Para ligar tabelas Access a uma base de dados Azure, precisa do SQL Server Native Client (SNAC) versão 10.5 ou posterior. Obtenha a versão mais recente do SNAC no Microsoft SQL Server 2008 R2 Feature Pack. O SNAC foi removido no SQL Server 2022 (16.x).
Desvincular tabelas do Access
Quando desvincula uma tabela Access de uma tabela SQL Server ou Azure SQL, o SSMA restaura a tabela Access original e os seus dados.
No Access Metadata Explorer, selecione as tabelas que quer desvincular.
Clique com o botão direito em Tabelas e depois selecione Remover ligação.
Ligar tabelas a um servidor diferente
Se ligares as tabelas de acesso a uma instância do SQL Server e mais tarde quiseres mudar as ligações para outra instância, tens de voltar a ligar as tabelas.
No Access Metadata Explorer, selecione as tabelas que quer desvincular.
Clique com o botão direito do rato em Tabelas e depois selecione Desvincular.
Selecione o botão Reconectar ao SQL Server .
Liga-te à instância do SQL Server ou Azure SQL à qual queres ligar as tabelas de acesso.
No Access Metadata Explorer, selecione as tabelas que quer ligar.
Clique com o botão direito em Tabelas e depois selecione Link.
Atualizar tabelas ligadas
Se alterar as definições de tabelas SQL Server ou Azure SQL, pode desvincular e depois voltar a ligar as tabelas no SSMA utilizando os procedimentos mostrados anteriormente neste artigo. Também pode atualizar as tabelas usando o Access.
Abra a base de dados do Access.
Na lista de Objetos , selecione Tabelas.
Clique com o botão direito numa tabela ligada e depois selecione Gestor de Tabelas Ligadas.
Seleciona a caixa de seleção ao lado de cada tabela ligada que queres atualizar e depois seleciona OK.
Possíveis problemas pós-migração
As secções seguintes listam problemas que podem ocorrer em aplicações Access existentes após migrar bases de dados do Access para SQL Server ou Azure SQL e depois ligar as tabelas. As secções também descrevem as causas e as soluções para estas questões.
Desempenho lento com tabelas associadas
Causa: Algumas consultas podem ser lentas após o aumento de tamanho pelas seguintes razões:
A aplicação depende de funções que não existem no SQL Server ou Azure SQL. O Jet descarrega tabelas localmente para executar uma
SELECTconsulta.O Jet envia consultas que atualizam ou eliminam muitas linhas como uma consulta parametrizada para cada linha.
Resolução: Converter as consultas de execução lenta em consultas de passagem direta, procedimentos armazenados ou vistas. A conversão para consultas pass-through tem os seguintes problemas:
Não podes modificar consultas de passagem. Deve modificar o resultado da consulta ou adicionar novos registos de uma forma alternativa. Por exemplo, pode ter botões explícitos de Modificar ou Adicionar no seu formulário que estejam associados à consulta.
As consultas pass-through não suportam entrada do utilizador, mas algumas consultas requerem input do utilizador. Pode usar o Visual Basic for Applications (VBA) para pedir parâmetros ou obter input do utilizador através de um formulário. Em ambos os casos, o código VBA submete a consulta com a entrada do utilizador ao servidor.
As colunas de autoincremento não são atualizadas até que o registo seja atualizado
Causa: Depois de chamar o RecordSet.AddNew no Jet, a coluna de autoincremento está disponível antes de o registo ser atualizado. Esta condição não é verdadeira no SQL Server ou Azure SQL. O novo valor da coluna de identidade só está disponível após guardar o novo registo.
Resolução: Execute o seguinte código Visual Basic para Aplicações (VBA) antes de aceder ao campo identidade:
Recordset.Update
Recordset.Move 0,
Recordset.LastModified
Novos discos não estão disponíveis
Causa: Quando adicionas um registo a uma tabela SQL Server ou Azure SQL usando VBA, se o campo de índice único da tabela tiver um valor predefinido e não atribuires valor a esse campo, o novo registo só aparece quando reabrires a tabela no SQL Server ou Azure SQL. Se tentar obter um valor do novo registo, recebe a seguinte mensagem de erro:
Run-time error '3167' Record is deleted.
Resolução: Quando abrir a tabela SQL Server ou Azure SQL usando código VBA, inclua a dbSeeChanges opção, como no seguinte exemplo:
Set rs = db.OpenRecordset("TestTable", dbOpenDynaset, dbSeeChanges)
Após a migração, algumas consultas não permitem ao utilizador adicionar um novo registo
Causa: Se uma consulta não incluir todas as colunas que estão incluídas num índice único, não pode adicionar novos valores usando a consulta.
Resolução: Certifique-se de que todas as colunas incluídas em pelo menos um índice único fazem parte da consulta.
Não podes modificar um esquema de tabela ligada usando o Access
Causa: Depois de migrar dados e ligar tabelas, não pode modificar o esquema de uma tabela no Access.
Resolução: Modificar o esquema da tabela usando o SQL Server Management Studio e depois atualizar o link no Access.
A funcionalidade de hiperligação é perdida após a migração dos dados
Causa: Depois de os dados serem migrados, os hiperlinks nas colunas perdem a sua funcionalidade e tornam-se simples colunas nvarchar(max ).
Resolução: Nenhuma.
O Access não suporta alguns tipos de dados SQL Server
Causa: Se atualizar as suas tabelas SQL Server ou Azure SQL para incluir tipos de dados que o Access não suporta, não pode abrir a tabela no Access.
Resolução: Defina uma consulta de acesso que devolve apenas linhas com tipos de dados suportados.