Como utilizar o ADOX para criar uma consulta pass-through do SQL no Access
Moderado: requer competências básicas de macro, codificação e interoperabilidade.
Este artigo aplica-se apenas a uma base de dados do Microsoft Access (.accdb ou .mdb).
Resumo
Este artigo mostra-lhe como criar uma consulta pass-through do SQL no Microsoft Visual Basic for Applications (VBA) com o Microsoft ActiveX Data Objects (ADO).
Mais informações
Pode escrever uma função no Visual Basic para aplicações que cria uma consulta pass-through do SQL. Uma consulta pass-through do SQL é composta por uma instrução SQL e uma cadeia de ligação. Quando executa a consulta, esta envia comandos diretamente para o servidor de bases de dados para processamento. Esta ação remove a sobrecarga do motor de base de dados do Microsoft Jet.
Com o modelo do Objeto de Acesso a Dados (DAO), pode utilizar consultas pass-through do SQL para melhorar o desempenho quando acedeu a dados externos. Com o ADO, pode utilizar o Fornecedor OLE DB da Microsoft para SQL Server para aceder diretamente a um SQL Server sem a sobrecarga do Microsoft Jet ou ODBC. Também pode utilizar o Fornecedor OLE DB da Microsoft para ODBC para aceder a dados em qualquer origem de dados ODBC.
Embora já não tenha de criar consultas pass-through do SQL na sua base de dados do Microsoft Jet para melhorar o desempenho, ainda pode fazê-lo com o ADOX e o Fornecedor jet. O código seguinte mostra-lhe como criar uma consulta pass-through do SQL.
NOTA: o código de exemplo neste artigo utiliza extensões ADO e ActiveX Data Objects para Linguagem e Segurança de Definição de Dados (ADOX). Para que este código seja executado corretamente, tem de clicar em Referências no menu Ferramentas no visual basic Revisor e certificar-se de que as duas referências seguintes estão selecionadas:
- Biblioteca microsoft ActiveX Data Objects 2.1
- Microsoft ADO Ext. 2.6 para DDL e Segurança
A Microsoft fornece exemplos de programação apenas a título informativo, sem qualquer garantia expressa ou implícita, incluindo, sem limitações, as garantias implícitas de comercialização e/ou adequação a um fim específico. Este artigo pressupõe que o utilizador está familiarizado com a linguagem de programação demonstrada e as ferramentas utilizadas para criar e depurar procedimentos. Os técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às suas necessidades específicas. Para criar uma consulta pass-through do SQL no código, siga estes passos:
- Abra a base de dados northwind de exemplo.
- Crie um novo módulo e, em seguida, escreva ou cole o seguinte código:
Function CreateSPT(SPTQueryName As String, strSQL As String)
Dim cat As ADOX.Catalog
Dim cmd As ADODB.Command
Set cat = New ADOX.Catalog
Set cmd = New ADODB.Command
cat.ActiveConnection = CurrentProject.Connection
Set cmd.ActiveConnection = cat.ActiveConnection
cmd.CommandText = strSQL
cmd.Properties("Jet OLEDB:ODBC Pass-Through Statement") = True
'Modify the following connection string to reference an existing DSN for
'the sample SQL Server PUBS database.
cmd.Properties _
("Jet OLEDB:Pass Through Query Connect String") = _
"ODBC;DSN=myDSN;database=pubs;UID=sa;PWD=;"
cat.Procedures.Append SPTQueryName, cmd
Set cat = Nothing
Set cmd = Nothing
End Function
Para testar esta função, escreva a seguinte linha na janela Imediato e, em seguida, prima ENTER:
? CreateSPT("MySptQuery", "Select * from Authors")
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários