• ベストアンサー

access内のオブジェクトの名称一覧

access内のテーブル、クエリ、フォーム、レポート それぞれの名称の一覧をテキストかなにかで取ることはできませんか

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1742/2617)
回答No.1

Access 2013 テーブル・クエリ等すべてのオブジェクトを取得する方法 https://nasunoblog.blogspot.com/2013/10/access-2013.html

webuser
質問者

お礼

ありがとうございます。 UNIONクエリ以外は取れてそうです。

その他の回答 (1)

  • kkkkkm
  • ベストアンサー率66% (1742/2617)
回答No.2

> UNIONクエリ以外は取れてそうです。 そうですね。説明で全てのクエリとあったので取れるのだと思ってました。 SELECT Name FROM MsysObjects WHERE Type = 5 として AND Flags = 0 を外すとフォームの中のクエリも出てきますがUnionも出てきます。 なお、後だしになりますが こちらを参考にして MDBオブジェクト一覧を取得する https://tsware.jp/study/vol1/kaibo_01.htm 標準モジュールで以下を実行するとDBのフォルダにオブジェクト一覧としObjectsList.txtができます。 フォームの中のクエリも出てきます。 Sub TestQ() Dim dbs As Database Dim tdf As TableDef Dim qdf As QueryDef Dim ObJStr As String, mPath As String Dim FileNum As Integer Dim ctn As Container Dim doc As Document Set dbs = CurrentDb ObJStr = "-- テーブル -----" & vbCrLf For Each tdf In dbs.TableDefs With tdf If ((.Attributes And dbSystemObject) Or _ (.Attributes And dbHiddenObject)) = 0 Then ObJStr = ObJStr & .Name & vbCrLf End If End With Next tdf ObJStr = ObJStr & vbCrLf & "-- クエリ -----" & vbCrLf For Each qdf In dbs.QueryDefs ObJStr = ObJStr & qdf.Name & vbCrLf Next qdf ObJStr = ObJStr & vbCrLf & "-- フォーム -----" & vbCrLf Set ctn = dbs.Containers!Forms For Each doc In ctn.Documents ObJStr = ObJStr & doc.Name & vbCrLf Next doc Set ctn = Nothing ObJStr = ObJStr & vbCrLf & "-- レポート -----" & vbCrLf Set ctn = dbs.Containers!Reports For Each doc In ctn.Documents ObJStr = ObJStr & doc.Name & vbCrLf Next doc Set ctn = Nothing mPath = Application.CurrentProject.Path & "\" & "ObjectsList.txt" FileNum = FreeFile Open mPath For Output As #FileNum Print #FileNum, ObJStr Close #FileNum Set dbs = Nothing End Sub

webuser
質問者

お礼

ありがとうございます。 目途が付きました。

関連するQ&A