- ベストアンサー
access内のオブジェクトの名称一覧
access内のテーブル、クエリ、フォーム、レポート それぞれの名称の一覧をテキストかなにかで取ることはできませんか
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Access 2013 テーブル・クエリ等すべてのオブジェクトを取得する方法 https://nasunoblog.blogspot.com/2013/10/access-2013.html
その他の回答 (1)
- kkkkkm
- ベストアンサー率66% (1742/2617)
> 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
お礼
ありがとうございます。 目途が付きました。
お礼
ありがとうございます。 UNIONクエリ以外は取れてそうです。