■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#11679-0VBからアクセスデータベース参照Always1999-12-15(水) 11:09
     #11690-0RE#11679:VBからアクセスデータベース参照にしむら だい1999-12-15(水) 12:27
#11679-0
VBからアクセスデータベース参照
VBからAccessで作成したデータベースに接続して、そのデータベースファイル
のあるテーブルの主キーに設定したフィールド名を取ってきたいのですが、どうす
ればよろしいですか?ちなみにDAOを使用しています。
初心者なので詳しい説明のほうをよろしくお願いします。
#11690-0
RE#11679:VBからアクセスデータベース参照
> VBからAccessで作成したデータベースに接続して、そのデータベースファイル
> のあるテーブルの主キーに設定したフィールド名を取ってきたいのですが、どうす
> ればよろしいですか?ちなみにDAOを使用しています。
> 初心者なので詳しい説明のほうをよろしくお願いします。

ええと、Databaseオブジェクトの、TableDefsコレクションの下にある、
Indexesコレクションをループで検索しながら、Primary プロパティに True が設定
されているか探せばよいわけです。
そこから、Fields コレクションでループし、Nameプロパティを変数に設定するわけです。

具体的には、
データベースオブジェクトを DB
テーブル名を テーブル
として、例を書きます。

DBはすでにセットされているものとします。

Dim DB              As Database     'データベース
Dim IdxPrimary      As Index        '主キーのインデックス
Dim fldPrimary      As Field        '主キーのインデックスになっているフィールド

Dim i               As Integer      'カウンタ(フィールドの数)

Dim strFldName()    As String       '主キーに設定されているフィールドの名前

'テーブルのインデックスを検索
For Each ldxprimary In DB.TableDefs("テーブル").Indexes 
    '主キーならばループを抜ける
    If IdxPrimary.Primary = True Then Exit For 
Next
'主キーの中のフィールドを参照する
For Each fldPrimary In IdxPrimary.Fields
    'フィールド名格納変数の配列の添字を設定する
    i = i + 1
    ReDim Preserve strFldName(1 To i)
    'フィールド名を変数に格納する
    strFldName = fldPrimary.Name
Next

とすると、strFldNameの配列を参照すれば、主キーのフィールド名が出せるはずだとおもいます。
たぶん、、、いける、、、はずです。
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)