• ベストアンサー

Access MDB の フィールド プロパティー取得

テーブル(Access2000)のフィールドサイズ、フィールドタイプ等、フィールドの設計情報を取得したいのですが、どのようにすれば取得できるのでしょうか? フィールド名は取得できるのですが、他のが取れませんでした。 Access2000のモジュール、若しくはVB6で回答して頂けるとうれしいです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#4564
noname#4564
回答No.1

  > テーブル(Access2000)のフィールドサイズ、フィールドタイプ等、フィールドの設計情報を > 取得したいのですが、どのようにすれば取得できるのでしょうか? > > フィールド名は取得できるのですが、他のが取れませんでした。 DAOのTableDefオブジェクトの以下の各プロパティを取得すればOKです。  ・ Name  ・ Type  ・ Size  ・ Attributes  ・ Description # ADOXを使う方法は調べていませんので、あしからず。 注意点としては、 (1) Descriptionプロパティ(Access のテーブルデザインで表示される「説明」部分に該当)は   拡張(オプション)プロパティであり、設定されていない場合もある。   設定されていない場合、プロパティにアクセスするとエラーになるので、エラー処理が必要。 (2) Typeプロパティは定数値を返すので、適切な語句に「翻訳」する必要がある。   (下記を参照) Public Function GetFieldTypeName(ByVal lngType As Long, ByVal lngAttr As Long) As String 'FieldオブジェクトのTypeプロパティを日本語表示に変換。 Select Case lngType Case dbLong GetFieldTypeName = "長整数型" If lngAttr = dbAutoIncrField Then GetFieldTypeName = "オートナンバー型" Case dbInteger GetFieldTypeName = "整数型" Case dbDate GetFieldTypeName = "日付/時刻型" Case dbText GetFieldTypeName = "テキスト型" Case dbCurrency GetFieldTypeName = "通貨型" Case dbBoolean GetFieldTypeName = "Yes/No型" Case dbSingle GetFieldTypeName = "単精度浮動小数点型" Case dbDouble GetFieldTypeName = "倍精度浮動小数点型" Case dbByte GetFieldTypeName = "バイト型" Case dbMemo GetFieldTypeName = "メモ型" If lngAttr = dbHyperlinkField Then GetFieldTypeName = "ハイパーリンク型" Case dbLongBinary GetFieldTypeName = "OLEオブジェクト型" Case dbBinary GetFieldTypeName = "バイナリ型" Case dbGUID GetFieldTypeName = "レプリケーションID型" End Select End Function  

wakaranai_kun
質問者

お礼

早速ご回答ありがとうございます。何とかなりました。

関連するQ&A