Como alterar programaticamente a ligação de um projeto do Access

Avançado: requer codificação especializada, interoperabilidade e competências multiutilizadas.

Este artigo aplica-se apenas a um projeto do Microsoft Access (.adp).

Resumo

Este artigo mostra-lhe como alterar programaticamente a ligação de um ficheiro de projeto do Microsoft Access (ADP).

Mais informações

A forma mais fácil de alterar a ligação de um ADP é fazê-lo manualmente. Pode aceder às propriedades de ligação do projeto atual da seguinte forma no Access 2002 ou no Access 2003: no menu Ficheiro, clique em Ligação. A caixa de diálogo apresentada dá-lhe opções para alterar o nome do servidor e os modos de segurança, entre outras propriedades.

Nota No Access 2007, siga estes passos para abrir o separador Ligação da caixa de diálogo Propriedades da Ligação de Dados :

  1. Clique no Botão do Microsoft Office e, em seguida, clique em Opções do Access.
  2. No separador Personalizar , clique em Todos os Comandos na lista Escolher comandos de .
  3. Clique em Ligação no painel esquerdo, clique em Adicionar e, em seguida, clique em OK.
  4. Clique em Ligação na Barra de Ferramentas de Acesso Rápido.

No entanto, por vezes, poderá querer automatizar o processo. Pode querer que os utilizadores se liguem a um SQL Server diferente para uma secção específica da sua aplicação ou pode querer controlar o processo de ligação no arranque para que possa procurar erros e processá-los em conformidade, talvez através do encaminhamento para outro servidor.

Os passos seguintes utilizam uma função que demonstra como alterar a ligação existente de um ADP com o modelo de objeto do Access. A função devolve Verdadeiro se for bem-sucedida e Falso se não for bem-sucedida.

  1. Inicie o Access e, em seguida, abra o projeto de acesso de exemplo NorthwindCS.adp.

  2. No Access 2002 ou no Access 2003, clique em Módulos em Objetos na janela Base de Dados e, em seguida, clique em Novo para abrir um novo módulo.

    No Access 2007, clique na seta para baixo abaixo de Macro no grupo Outro no separador Criar e, em seguida, clique em Módulo.

  3. Adicione o seguinte código ao novo módulo e, em seguida, guarde o módulo:

Function ChangeADPConnection(strServerName As String, strDBName As _
   String, Optional strUN As String, Optional strPW As String) As Boolean
Dim strConnect As String
On Error GoTo EH:
Application.CurrentProject.CloseConnection
'The Provider, Data Source, and Initial Catalog arguments are required.
strConnect = "Provider=SQLOLEDB.1" & _
";Data Source=" & strServerName & _
";Initial Catalog=" & strDBName
If strUN <> "" Then
    strConnect = strConnect & ";user id=" & strUN
    If strPW <> "" Then
        strConnect = strConnect & ";password=" & strPW
    End If
Else  'Try to use integrated security if no username is supplied.
    strConnect = strConnect & ";integrated security=SSPI"
End If
Application.CurrentProject.OpenConnection strConnect
ChangeADPConnection = True
Exit Function
EH:
MsgBox Err.Number & ": " & Err.Description, vbCritical, "Connection Error"
ChangeADPConnection = False
End Function

  1. No Access 2002 ou no Access 2003, clique em Formulários em Objetos na janela Base de Dados, clique em Novo e, em seguida, clique em OK para abrir um novo formulário na vista Estrutura.

    No Access 2007, clique em Formulário no separador Criar .

  2. Adicionar um botão de comando ao formulário.

  3. Defina a propriedade OnClick do botão de comando para o seguinte procedimento de evento:

Dim bCheckConnection As Boolean
   'You must specify the correct parameters for your following server.
   'username and password parameters are optional.
bCheckConnection=ChangeADPConnection("ServerName","DBName","UserName","PW")
MsgBox bCheckConnection
  1. Feche o ambiente do Visual Basic para voltar ao formulário.

  2. Guarde o formulário e, em seguida, mude o formulário para a vista Formulário.

  3. Clique no botão de comando para executar o código subjacente.

    Receberá uma caixa de mensagem que indica Verdadeiro se tiver fornecido os parâmetros corretos para uma ligação no passo 6.

    -OU-

    Se não tiver indicado os parâmetros corretos, receberá a mensagem de erro. Quando clica em OK para a mensagem de erro, obtém a caixa de mensagem que apresenta Falso.