プロが教える店舗&オフィスのセキュリティ対策術

テーブル(Access2000)のフィールドサイズ、フィールドタイプ等、フィールドの設計情報を取得したいのですが、どのようにすれば取得できるのでしょうか?

フィールド名は取得できるのですが、他のが取れませんでした。

Access2000のモジュール、若しくはVB6で回答して頂けるとうれしいです。

よろしくお願いします。

A 回答 (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
 
    • good
    • 1
この回答へのお礼

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

お礼日時:2003/09/03 10:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す