Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2037 / 2272 ツリー ←次へ | 前へ→

【4143】テーブルの有無を調べる方法? 山田 05/1/14(金) 10:55 質問[未読]
【4144】Re:テーブルの有無を調べる方法? Gin_II 05/1/14(金) 11:00 回答[未読]
【4146】有難うございます 山田 05/1/14(金) 11:58 お礼[未読]
【4147】Re:テーブルの有無を調べる方法? Hanahana 05/1/14(金) 12:45 回答[未読]
【4148】Re:テーブルの有無を調べる方法? 山田 05/1/14(金) 14:04 質問[未読]
【4150】Re:テーブルの有無を調べる方法? Hanahana 05/1/14(金) 14:19 回答[未読]
【4157】Re:テーブルの有無を調べる方法? 山田 05/1/14(金) 16:05 質問[未読]
【4158】Re:オブジェクト一覧 Gin_II 05/1/14(金) 16:37 回答[未読]

【4143】テーブルの有無を調べる方法?
質問  山田  - 05/1/14(金) 10:55 -

引用なし
パスワード
   ファイルの有無は Dir関数で出来ると思いますが
同じようにテーブルの有無を調べる方法はありませんか?
教えてください。

【4144】Re:テーブルの有無を調べる方法?
回答  Gin_II  - 05/1/14(金) 11:00 -

引用なし
パスワード
   >ファイルの有無は Dir関数で出来ると思いますが
>同じようにテーブルの有無を調べる方法はありませんか?

mdbファイルであれば、

If DCount("*","MSysObjects","Name='xxx'") > 0 Then
  '存在する
Else
  '存在しない
End If

でどうでしょうか?

【4146】有難うございます
お礼  山田  - 05/1/14(金) 11:58 -

引用なし
パスワード
   ▼Gin_II さん:
「DCount」関数のこんな使い方があったんですね!!
助かりました。
有難うございます。

【4147】Re:テーブルの有無を調べる方法?
回答  Hanahana  - 05/1/14(金) 12:45 -

引用なし
パスワード
   横槍失礼します。

MSysObjectsにはフォーム、レポートも含まれています。

テーブルだと条件に Type = 1 が必要だと思います。

【4148】Re:テーブルの有無を調べる方法?
質問  山田  - 05/1/14(金) 14:04 -

引用なし
パスワード
   ▼Hanahana さん:
>横槍失礼します。
>
>MSysObjectsにはフォーム、レポートも含まれています。
>
>テーブルだと条件に Type = 1 が必要だと思います。


type をどこに入れるのでしょうか?
また、ついでで申し訳ありませんが
オブジェクトの名前を取得する方法も分かったら教えてもらえないでしょうか?

【4150】Re:テーブルの有無を調べる方法?
回答  Hanahana  - 05/1/14(金) 14:19 -

引用なし
パスワード
   DCount("*","MSysObjects","Name='xxx' And Type=1")

オブジェクトの名前とは一体何の事でしょうか?

【4157】Re:テーブルの有無を調べる方法?
質問  山田  - 05/1/14(金) 16:05 -

引用なし
パスワード
   ▼Hanahana さん:

>オブジェクトの名前とは一体何の事でしょうか?

説明不足ですみません。

作成されている全てのテーブルやクエリー、レポート、フォーム等の名前です。

T_在庫  とか R_月次レポート とかです。

どんなものが入っているかVBAで調べる処理をしたいのです。
よろしくお願いします。

【4158】Re:オブジェクト一覧
回答  Gin_II  - 05/1/14(金) 16:37 -

引用なし
パスワード
   >作成されている全てのテーブルやクエリー、レポート、フォーム等の名前です。
>
>T_在庫  とか R_月次レポート とかです。
>
>どんなものが入っているかVBAで調べる処理をしたいのです。

VBAではないですが。。

SELECT Switch([Type]=1,"Table",
       [Type]=4,"Link_Table",
       [Type]=5,"Query",
       [Type]=6,"Link_Table",
       [Type]=-32761,"Module",
       [Type]=-32764,"Report",
       [Type]=-32766,"Macro",
       [Type]=-32768,"Form") AS OjbType,
   MsysObjects.Name
FROM MsysObjects
WHERE (Left$([Name],1)<>"~")
 AND (Left$([Name],4)<>"MSys")
 AND ([Type] In(1,4,5,6,-32761,-32764,-32766,-32768))
ORDER BY MsysObjects.Name;

クエリのSQLビューで、上記をコピーしてみてくださ。

2037 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078264
(SS)C-BOARD v3.8 is Free