プロが教える店舗&オフィスのセキュリティ対策術

テーブルが100、クエリが200ほどあるデータベースを使用してます。そのほかにレポート、フォーム、マクロもそこそこあります。これらのテーブル名やクエリ名の一覧表を作成したいのですがどうすればいいでしょうか。出力はファイル(たとえばExcelなど)でもプリントアウトでもかまいません。初心者なのでできるだけ簡単方法を教えていただければ助かります。よろしくお願いします。

A 回答 (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文の文字を貼り付けたもの)
これを実行してもテーブル一覧がクエリの結果として出てくるでしょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
なんとか理解できそうなのでやってみます。

お礼日時:2009/04/23 23:23

gemini55さん 今日は!


回答者のimogasiさんから既に回答が出ておりますので。
Accessのサイトをご紹介致しますので今後の参考にされては?
■Accessサイトリンク集↓
http://www.accessclub.jp/linksite/index.html
このサイトが参考に為りそうです。
■Accessのオブジェクト名一覧を出力する方法 《テーブル名・クエリ名・フォーム名・レポート名等の一覧》 (Ac97,Ac2000,Ac2002)↓
http://www.nurs.or.jp/~ppoy/access/access/acEt01 …
このサイトが最も判り易いかも知れません。
ご参考までに。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
Accessのオブジェクト名一覧を出力する方法は大変参考になりました。

お礼日時:2009/04/23 23:28

こんにちは。



 下記サイトをご参照下さい。
  http://www.nurs.or.jp/~ppoy/access/access/acQ017 …
  システムテーブルを検索すれば表を作れます。

では。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
頑張ってみます。

お礼日時:2009/04/23 23:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています