• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アクセスのマクロ解析ツール?)

アクセスのマクロ解析ツールはありますか?

このQ&Aのポイント
  • アクセス97で発注・仕入処理をクエリーとマクロを使って行っていますが、処理が複雑化し、管理が難しくなってきました。
  • VBAを学ぶ時間もなく、システム屋さんに頼むにも業務知識がなく難しいため、自分で解析できるツールを探しています。
  • アクセスの機能にあるデータベース解析ツールは使いづらいため、安価かフリーのツールを教えてほしいです。

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

  • ベストアンサー
  • ARC
  • ベストアンサー率46% (643/1383)
回答No.2

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」なるフォームが出来ていると思うので、メモ帳などで開いてください。 「このクエリは何処で使われているの?」ってなことが知りたい場合は、メモ帳の検索機能を使ってください。 フォームの「レコードソース」「イベント」と、コントロールの「値集合ソース」「イベント」に限定して拾ってきているだけですので、それ以外のプロパティにクエリ/マクロが登場している場合には、その項目は取得できません。

その他の回答 (2)

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.3

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

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.1

回答ではなく、アドバイスになるのですが… データベースウインドウで、クエリやマクロなどを右クリック→プロパティで、コメントを記述できます。 これを使えば、少しは分かりやすくなるのではないかと思います。 それから、これはいまさら遅いかもしれませんが、テーブル、フォーム、クエリなどの名前を、3桁の数字+名称ってな感じで付けると、整理しやすいです。 100番台は商品関係、300番台は仕入先関係… などと決めておくと、名前で並び替えるだけですっきりと整列しますよ。(Access2000以降では、後からマクロ等の名前を変更しても、フォームの内容とかがそれに合わせて再設定されます。) 例えばどのフォームがどのマクロやクエリを使っているのか、といったことはVBAを使えば一覧出力が可能なのですが…

関連するQ&A