- ベストアンサー
Accessでテーブルやクエリのリストを作りたい。
テーブルが100、クエリが200ほどあるデータベースを使用してます。そのほかにレポート、フォーム、マクロもそこそこあります。これらのテーブル名やクエリ名の一覧表を作成したいのですがどうすればいいでしょうか。出力はファイル(たとえばExcelなど)でもプリントアウトでもかまいません。初心者なのでできるだけ簡単方法を教えていただければ助かります。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#1の情報を使わせてもらって、実際やってみました。質問者が、#1の回答の先が、判るレベルの人なら良いのだが、そこが心配になって、あるサイトのコードを修正して書いておきます。 http://www.accessclub.jp/sql/07.html ーー アクセスのオブジェクトの「モジュール」に Sub MySQLSelect() On Error GoTo エラー Dim db As DAO.Database Dim qdf As DAO.QueryDef Dim mySQL As String Set db = CurrentDb() ' SQLを記述します。 'mySQL = "SELECT * FROM 生徒;" mySQL = "SELECT Name FROM MsysObjects WHERE Left([Name],4) <> 'Msys' AND Type = 1;" Set qdf = db.CreateQueryDef("Q_sample", mySQL) ' Q_sampleを作成します。 DoCmd.OpenQuery qdf.Name ' クエリを開きます。 db.Close Set db = Nothing Exit Sub エラー: If Err.Number = 3012 Then db.QueryDefs.Delete "Q_sample" ' Q_sampleを削除します。 Resume Else MsgBox Err.Number & " : " & Err.Description End If End Sub を作る(コピペする) ーー そして実行する。 テーブル名の一覧が表示される。 クエリ一覧なら#1でご紹介のサイトのクエリ一覧のように、上記WHERE条件のところを変える。レポート以下の場合同じくWHERE条件を修正。 ーーーー Excelのシートに移すのは、クエリの結果(たとえばテーブル名一覧)をコピーして、Excelシートに貼り付けると良い。 ADO、DAOでクエリの結果をプログラムでExcelのセルに書き込む方法が有るが、>初心者なので、ならVBAの経験も無いだろう。この件も書かれたコードの勉強は大変だが、質問の課題限定という事で、言われたとおりやって、結果だけ取る、という意味で回答する。 ーー VBAを使わない方法では クエリー新規作成で、どれかテーブルでクエリを作る。 テーブル部(上部)で右クリックで「テーブルの削除」 表示ーSQLビューで、SELECT文をそっくり SELECT Name FROM MsysObjects WHERE Left([Name],4) <> 'Msys' AND Type = 1; に置き換え(プログラムの中のSQL文の文字を貼り付けたもの) これを実行してもテーブル一覧がクエリの結果として出てくるでしょう。
その他の回答 (2)
- 有田 賢治(@ARIKEN43)
- ベストアンサー率50% (563/1116)
gemini55さん 今日は! 回答者のimogasiさんから既に回答が出ておりますので。 Accessのサイトをご紹介致しますので今後の参考にされては? ■Accessサイトリンク集↓ http://www.accessclub.jp/linksite/index.html このサイトが参考に為りそうです。 ■Accessのオブジェクト名一覧を出力する方法 《テーブル名・クエリ名・フォーム名・レポート名等の一覧》 (Ac97,Ac2000,Ac2002)↓ http://www.nurs.or.jp/~ppoy/access/access/acEt015.html このサイトが最も判り易いかも知れません。 ご参考までに。
お礼
回答ありがとうございます。 Accessのオブジェクト名一覧を出力する方法は大変参考になりました。
- akina_line
- ベストアンサー率34% (1124/3287)
こんにちは。 下記サイトをご参照下さい。 http://www.nurs.or.jp/~ppoy/access/access/acQ017.html システムテーブルを検索すれば表を作れます。 では。
お礼
回答ありがとうございます。 頑張ってみます。
お礼
回答ありがとうございます。 なんとか理解できそうなのでやってみます。