OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

アクセスのマクロ解析ツール?

  • 困ってます
  • 質問No.165941
  • 閲覧数785
  • ありがとう数2
  • 気になる数0
  • 回答数3
  • コメント数0

素人ながら、アクセス97で発注・仕入処理を
クエリーを使い倒し、マクロを用いて、
どうにかこうにか、システムを作って、運用しています。

ところが、クエリーの数も200個以上になり、
マクロも小さな処理も含めて100は超えています。

こうなってくると、どこでどのマクロを使っていたのか、
すっかり忘れてしまうこともあり、変更の都度、あちこち
をたどって行かねばなりません。

VBA(VB)を使えれば良いのですが、今更一から勉強するような時間の余裕すらありませんので、
かといってシステム屋さんに頼もうにも、
業務を全く知らないので、その打ち合わせをする時間で
ある程度のもななら自分らで作れるので、
苦労して作っています。

そこで、教えていただきたいのは、マクロまでの処理で
作る場合、あとあとのメンテナンスの時、このマクロは
どこで使われているのか、逆引きできたり、どのフォームから実行されているのか、などわかりやすく解析できる
ツールのようなものは有りませんでしょうか?

ドキュメントツールとなると、たいそうなものでしょうか?

アクセスの機能にある、データベースの解析など
やたら、紙面が増えて使いづらいことこの上なしなので
何か良いツール(安価かフリーなもの)を教えてください。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル13

ベストアンサー率 46% (643/1383)

http://www.okweb.ne.jp/kotaeru_reply.php3?q=165941


今度は、回答…になるのかな?


1:モジュールを新規作成して、以下の内容をコピー、貼り付けてください。

'****ここから****
Public Function AnalyzeMyQuerys_and_Scripts() As Long
  Const OutputFileName = "C:\Report.txt"
  
  Dim cntForms As dao.Container
  Dim docForm As Document
  Dim Ctl As Control
  Dim FileNo As Integer
  Dim Value As String
  Dim Frm As Form
  Dim prp As Property
  Dim CtlnamePrinted As Boolean
  Dim i As Long
  Dim DocName As String
  FileNo = FreeFile
  Open OutputFileName For Output As #FileNo
  
  Set cntForms = CurrentDb.Containers("Forms")
  
  
  On Error Resume Next
  For i = 0 To CurrentDb.Containers("Forms").Documents.Count - 1
    DocName = CurrentDb.Containers("Forms").Documents(i).Name
    DoCmd.Close acForm, DocName, acSaveYes
    DoCmd.OpenForm DocName, acDesign
    Set Frm = Forms(DocName)
    
    Print #FileNo, ""
    Print #FileNo, ""
    Print #FileNo, Frm.Name
    Print #FileNo, vbTab & "RecordSource: " & Frm.RecordSource
    For Each prp In Frm.Properties
      If prp.Name Like "on*" Then
        If prp.Value <> "" Then
          Print #FileNo, vbTab & prp.Name & ": " & prp.Value
        End If
      End If
    Next prp
    
    For Each Ctl In Frm.Controls
      CtlnamePrinted = False
      Value = ""
      Value = Ctl!RowSourceType
      If Value = "Table/Query" Then
        Value = ""
        Value = Ctl!RowSource
        If Value <> "" Then
          If CtlnamePrinted = False Then
            Print #FileNo, ""
            Print #FileNo, vbTab & Ctl.Name
            CtlnamePrinted = True
          End If
          Print #FileNo, vbTab & vbTab & "RowSource: " & Value
        End If
      End If
      For Each prp In Ctl.Properties
        If prp.Name Like "on*" Then
          If prp.Value <> "" Then
            If CtlnamePrinted = False Then
              Print #FileNo, ""
              Print #FileNo, vbTab & Ctl.Name
              CtlnamePrinted = True
            End If
            Print #FileNo, vbTab & vbTab & prp.Name & ": " & prp.Value
          End If
        End If
      Next prp
    Next Ctl
    DoCmd.Close acForm, DocName
  Next i
  Close #FileNo
End Function
'****ここまで****

2:マクロを新規作成して、1行目に、
  アクション:プロシージャの実行
  プロシージャ名:AnalyzeMyQuerys_and_Scripts()
 のようにして、保存してください。

3:開いているフォームを全て閉じてから、2:で作ったマクロを実行。

4:C:ドライブの天辺に、「Report.txt」なるフォームが出来ていると思うので、メモ帳などで開いてください。
「このクエリは何処で使われているの?」ってなことが知りたい場合は、メモ帳の検索機能を使ってください。


フォームの「レコードソース」「イベント」と、コントロールの「値集合ソース」「イベント」に限定して拾ってきているだけですので、それ以外のプロパティにクエリ/マクロが登場している場合には、その項目は取得できません。
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル13

ベストアンサー率 46% (643/1383)

回答ではなく、アドバイスになるのですが… データベースウインドウで、クエリやマクロなどを右クリック→プロパティで、コメントを記述できます。 これを使えば、少しは分かりやすくなるのではないかと思います。 それから、これはいまさら遅いかもしれませんが、テーブル、フォーム、クエリなどの名前を、3桁の数字+名称ってな感じで付けると、整理しやすいです。 100番台は商品関係、300番台は仕入先関係… ...続きを読む
回答ではなく、アドバイスになるのですが…

データベースウインドウで、クエリやマクロなどを右クリック→プロパティで、コメントを記述できます。
これを使えば、少しは分かりやすくなるのではないかと思います。

それから、これはいまさら遅いかもしれませんが、テーブル、フォーム、クエリなどの名前を、3桁の数字+名称ってな感じで付けると、整理しやすいです。
100番台は商品関係、300番台は仕入先関係… などと決めておくと、名前で並び替えるだけですっきりと整列しますよ。(Access2000以降では、後からマクロ等の名前を変更しても、フォームの内容とかがそれに合わせて再設定されます。)

例えばどのフォームがどのマクロやクエリを使っているのか、といったことはVBAを使えば一覧出力が可能なのですが…


  • 回答No.3
レベル13

ベストアンサー率 46% (643/1383)

誤 C:ドライブの天辺に、「Report.txt」なるフォームが出来ていると思うので、 正 C:ドライブのてっぺんに、「Report.txt」なるファイルが出来ていると思うので、 でしたm(__)m。 ポカミスの専門家(^^;

C:ドライブの天辺に、「Report.txt」なるフォームが出来ていると思うので、


C:ドライブのてっぺんに、「Report.txt」なるファイルが出来ていると思うので、

でしたm(__)m。

ポカミスの専門家(^^;
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ