Access VBA質問箱 IV

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

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


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

【3852】ACCESS 主キー情報取得方法 Wハリケーン 04/11/13(土) 4:18 質問[未読]
【3853】Re:ACCESS 主キー情報取得方法 YU-TANG 04/11/13(土) 6:16 回答[未読]
【3854】Re:ACCESS 主キー情報取得方法 Wハリケーン 04/11/14(日) 0:55 お礼[未読]

【3852】ACCESS 主キー情報取得方法
質問  Wハリケーン  - 04/11/13(土) 4:18 -

引用なし
パスワード
   VBAからACCESSの各テーブルのフィールド内容を取得したいのですが、
主キー情報を取得する方法をご存知の方がいらっしゃれば教えて下さい。

参考までに・・
データ型などの各フィールド情報は下記方法で参照できるのですが、
主キー情報がどこに保存されているのか、探し出す事ができません。

 Dim dbs As Database
 Dim tdf As TableDef
 Dim fld As Field
 Dim prp As Property

 Set dbs = CurrentDb

 Set tdf = dbs.TableDefs("テーブル名")
 Set fld = tdf.Fields("フィールド名")

 On Error Resume Next '実行時エラーを無視

 For Each prp In fld.Properties
  Debug.Print prp.Name, prp.Value
 Next prp

ご存知の方がいらっしゃいましたらご教授下さい。

【3853】Re:ACCESS 主キー情報取得方法
回答  YU-TANG WEB  - 04/11/13(土) 6:16 -

引用なし
パスワード
   おはようございます、YU-TANG です。

> 主キー情報を取得する方法をご存知の方がいらっしゃれば教えて下さい。

Index オブジェクトの Primary プロパティが True であれば、主キー
インデックスとみなせます。
主キー インデックスが特定できれば、Fields コレクションから主キー
フィールドも特定できるのでは。

DAO のヘルプに詳しい解説や使用例が載っていますので、まずはそちらを
確認してみてはいかがでしょうか。

【3854】Re:ACCESS 主キー情報取得方法
お礼  Wハリケーン  - 04/11/14(日) 0:55 -

引用なし
パスワード
   YU-TANG さん

回答ありがとうございます。Wハリケーンです。
以下の方法で無事解決致しました。早々の回答ありがとうございました。

Private Sub GetPrimaryKeyFields (TableName As String)
Dim db As DAO.DATABASE
Dim tbd As DAO.TableDef
Dim idx As DAO.Index
Dim fld As DAO.Field
Set db = CurrentDb
Set tbd = db.TableDefs(TableName)
For Each idx In tbd.Indexes
  If idx.Primary = True Then
    For Each fld In idx.Fields
      Debug.Print fld.Name
    Next
  End If
Next
End Sub

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