Access VBA質問箱 IV

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

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


8889 / 9994 ←次へ | 前へ→

【4260】Re:テーブルとかクエリーの有無
発言  クロ  - 05/1/25(火) 16:41 -

引用なし
パスワード
   興味があったので...
隠しオブジェクト「MSysObjects」を使用したオブジェクトの有無判定を考えてみました

M_Objectsというテーブルを用意してください。
Typeをオブジェクト名に変更するために使用します。
詳細は以下の通り


Type(数値型)/ObjectsName(テキスト型)
1/テーブル
4/他リンクテーブル
6/リンクテーブル
5/クエリ
-32768/フォーム
-32764/レポート
-32761/モジュール


ユーザー関数を作成

Function GetObjects(strObj As String)
Dim ct As ADODB.Connection
Dim rs As ADODB.Recordset
Dim myObj As String, strSQL As String
myObj = strObj
strSQL = "SELECT M_Objects.ObjectsName, MSysObjects.Name" & _
       " FROM M_Objects INNER JOIN MSysObjects ON M_Objects.typa = MSysObjects.Type" & _
       " WHERE [Name]='" & myObj & "'"
Set ct = Application.CurrentProject.Connection
Set rs = New ADODB.Recordset
rs.Open strSQL, ct
If rs.EOF Then
  MsgBox "同名のオブジェクトはありません"
Else
  MsgBox rs.GetString
End If
rs.Close
ct.Close
End Function

イミディエイトウィンドウで
?GetObjects("存在するオブジェクト名")
オブジェクトタイプ/オブジェクト名がメッセージされると思います。

同様に"存在しないオブジェクト名"で「ないよ」とメッセージしてくれる
と思います。

2,660 hits

【4251】テーブルとかクエリーの有無 ひろのしま 05/1/25(火) 9:09 発言
【4252】Re:テーブルとかクエリーの有無 MJM 05/1/25(火) 10:21 回答
【4256】Re:テーブルとかクエリーの有無 ひろのしま 05/1/25(火) 13:06 お礼
【4260】Re:テーブルとかクエリーの有無 クロ 05/1/25(火) 16:41 発言
【4261】Re:テーブルとかクエリーの有無 MJM 05/1/25(火) 17:05 発言
【4262】Re:テーブルとかクエリーの有無 ひろのしま 05/1/26(水) 9:33 お礼
【4265】Re:テーブルとかクエリーの有無 MJM 05/1/26(水) 11:47 発言
【4324】Re:テーブルとかクエリーの有無 ひろのしま 05/2/3(木) 9:05 お礼

8889 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078269
(SS)C-BOARD v3.8 is Free