Access
 sql >> Base de Dados >  >> RDS >> Access

Localizar todas as consultas que usam uma tabela específica

Encontre todas as consultas que usam uma tabela específica


Acabamos de concluir uma conversão massiva de 39 bancos de dados para o SQL Server para um cliente no Tennessee, o que foi bastante desafiador, tivemos que não apenas aumentar todas as tabelas, mas mudar o sistema de importação/exportação entre bancos de dados para usar tabelas vinculadas. Às vezes precisávamos descobrir quais consultas estavam usando uma tabela, então usamos o seguinte código para encontrar rapidamente uma tabela em todas as consultas:
Public Function SearchQueries(strTableName As String)
Dim qdf As DAO.QueryDef
Dim strSQL As String
On Error GoTo ErrorHandler


Para cada qdf em CurrentDb.QueryDefs
Application.Echo True, qdf.Name
strSQL =qdf.SQL
If InStr(1, strSQL, strTableName)> 0 Then
Debug. Imprimir qdf.Name
End If
Próximo qdf

Set qdf =Nothing
MsgBox “Pesquisa Concluída”

Exit Function
ErrorHandler:
If Err.Number =3258 Then
strSQL =“”
Resume
End If
End Function
Digamos precisamos encontrar onde tblCustomers está sendo usado na coleção de consultas, pressionaríamos Ctrl-G para ir para a janela Immediate e digitar:
?SearchQueries("tblCustomers")
O sistema retornará todas as consultas quando usadas na mesma janela imediata:
qryCustomerList
qryOrdersByCustomer
qryOrderHistory

Espero que você ache este código útil! Deixe-me saber nos comentários, qualquer um que deixar um comentário será inscrito em um vale-presente de $ 25 da Amazon.com, corra, o concurso termina em 10/06/16!