MS Access形式の MDBファイル に対してODBC経由でアクセスするときに,テーブル一覧を取得したいのですが,どのようなSQL文を書いたらいいでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/04/22 09:45:39
  • 終了:2007/04/29 09:50:02

回答(1件)

id:mj99 No.1

mj99回答回数138ベストアンサー獲得回数382007/04/22 16:52:27

ポイント60pt

SQLは下記のとおりです。

SELECT MSysObjects.Name FROM MsysObjects 
WHERE (Left([Name],1)<>'~') AND (Left([Name],4) <> 'Msys') AND (MSysObjects.Type)=1
ORDER BY MSysObjects.Name

*(Left([Name],1)<>'~')は削除テーブルの除外のため

*(Left([Name],4) <> 'Msys')はシステムテーブル除外のため

*(MSysObjects.Type)=1は普通のテーブル

(Type=4はMDBテーブルのリンク。Type=6は外部DBのリンク)

----

ただし、ODBC経由では権限が無いので読み取りできないかも知れません。

下記の操作でMsysObjectsに権限を与えます。

1.AccessでMDBを開く。

2.[ツール]=>[オプション]で「隠しオブジェクト」「システムオブジェクト」を表示するよう設定する

3.[ツール]=>[セキュリティ]=>[ユーザグループの権限]でODBCでログインするに対し、「MsysObjects」に「読み取り」を選択

(ODBCでユーザID/パスワードを無しにしているなら、「管理者」に対して「読み取り」を与えて下さい)


http://www.friendlysw.com/knowhow/Queries_Intermediate_001.asp

http://www.penhagi.com/access/tips/60_obj.htm

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません