- ベストアンサー
アクセスのマクロ解析ツールはありますか?
- アクセス97で発注・仕入処理をクエリーとマクロを使って行っていますが、処理が複雑化し、管理が難しくなってきました。
- VBAを学ぶ時間もなく、システム屋さんに頼むにも業務知識がなく難しいため、自分で解析できるツールを探しています。
- アクセスの機能にあるデータベース解析ツールは使いづらいため、安価かフリーのツールを教えてほしいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
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)
誤 C:ドライブの天辺に、「Report.txt」なるフォームが出来ていると思うので、 正 C:ドライブのてっぺんに、「Report.txt」なるファイルが出来ていると思うので、 でしたm(__)m。 ポカミスの専門家(^^;
- ARC
- ベストアンサー率46% (643/1383)
回答ではなく、アドバイスになるのですが… データベースウインドウで、クエリやマクロなどを右クリック→プロパティで、コメントを記述できます。 これを使えば、少しは分かりやすくなるのではないかと思います。 それから、これはいまさら遅いかもしれませんが、テーブル、フォーム、クエリなどの名前を、3桁の数字+名称ってな感じで付けると、整理しやすいです。 100番台は商品関係、300番台は仕入先関係… などと決めておくと、名前で並び替えるだけですっきりと整列しますよ。(Access2000以降では、後からマクロ等の名前を変更しても、フォームの内容とかがそれに合わせて再設定されます。) 例えばどのフォームがどのマクロやクエリを使っているのか、といったことはVBAを使えば一覧出力が可能なのですが…