- ベストアンサー
Access MDB の フィールド プロパティー取得
テーブル(Access2000)のフィールドサイズ、フィールドタイプ等、フィールドの設計情報を取得したいのですが、どのようにすれば取得できるのでしょうか? フィールド名は取得できるのですが、他のが取れませんでした。 Access2000のモジュール、若しくはVB6で回答して頂けるとうれしいです。 よろしくお願いします。
- みんなの回答 (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
お礼
早速ご回答ありがとうございます。何とかなりました。