2016-11-10 8 views
0

My Accessデータベースには、疑わしいマクロや他のクエリによって呼び出されるクエリがあります。テキスト文字列(この場合はクエリ名)を探すために、すべてのマクロおよび/またはクエリの「コード」で検索を実行する方法はありますか?アクセスマクロを検索するには?

+0

http://stackoverflow.com/questions/1609548/ms-access-global-search-for-keyword-in-queries-forms-reports - FindAndReplaceの2010バージョンが2013年に動作するかどうかわからない – Andre

答えて

1

これは、すべてのテーブル&クエリ示しています:

SELECT IIf([type] = 5, "Query", "Table") AS [Object type] 
    ,MSysQueries.Flag AS [Query type] 
    ,MSysObjects.NAME 
    ,MSysObjects.Id 
    ,MSysObjects.Type 
FROM MSysObjects 
LEFT JOIN MSysQueries ON MSysObjects.Id = MSysQueries.ObjectId 
GROUP BY IIf([type] = 5, "Query", "Table") 
    ,MSysQueries.Flag 
    ,MSysObjects.NAME 
    ,MSysObjects.Id 
    ,MSysObjects.Type 
HAVING (
     (
      (MSysObjects.NAME) NOT LIKE "~*" 
      AND (MSysObjects.NAME) NOT LIKE "Msys*" 
      ) 
     AND (
      (MSysObjects.Type) = 1 
      OR (MSysObjects.Type) = 4 
      OR (MSysObjects.Type) = 6 
      OR (MSysObjects.Type) = 5 
      ) 
     ) 
ORDER BY IIf([type] = 5, "Query", "Table") DESC 
    ,MSysQueries.Flag 
    ,MSysObjects.NAME; 

をし、この1つは、各オブジェクトとそれを参照するクエリを示しています

SELECT [~MSys Tables & Queries].NAME AS [Object] 
    ,MSysObjects.NAME AS [Used in query] 
FROM [~MSys Tables & Queries] 
LEFT JOIN (
    MSysQueries LEFT JOIN MSysObjects ON MSysQueries.ObjectId = MSysObjects.Id 
    ) ON [~MSys Tables & Queries].NAME = MSysQueries.Name1 
GROUP BY [~MSys Tables & Queries].NAME 
    ,MSysObjects.NAME 
ORDER BY [~MSys Tables & Queries].NAME 
    ,MSysObjects.NAME; 

私はマクロインクルードを検索する方法がわかりません同じ方法。また、私はユニオンのクエリで使用されるオブジェクトを常にピックアップしているのではないかと思います。

私はそれがあなたに場所を与えることを願っています。

+0

ありがとう。 2番目のエラーは、 "〜MSys Tables&Queries"という名前の最初のものを保存する必要があることを認識するまで私にエラーを与えました。 –

0

無料のAccessアドインAccess Dependency Checkerをインストールすると、すべてのオブジェクトから文字列を検索できます。