[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2007/06/03(Sun) 10:51
投稿者名:たかはし
Eメール:
URL :
タイトル:
ACCESSデータ型の取得(オートナンバー型と長整数型)
はじめまして。

VB6よりADOXでACCESSテーブルのデータ型を取得しています。

Dim CAT         As ADOX.Catalog
Dim CAT_TBL     As ADOX.Table
Dim COL         As ADOX.Column

Fie_Type = COL.Type

ってな感じなのですが、
この場合にMDBのデータ型のオートナンバー型と長整数型が同じ
「203」という値となっております。

オートナンバーと長整数を特定することは可能なのでしょうか?

ちなみにACCESSへの接続はADOです。
ADO/ADOXともに参照設定は2.8を使っています。

すみませんがよろしくお願い致します。

投稿時間:2007/06/04(Mon) 11:04
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: ACCESSデータ型の取得(オートナンバー型と長整数型)
> この場合にMDBのデータ型のオートナンバー型と長整数型が同じ
> 「203」という値となっております。

ん? 203 って、DataTypeEnum.adLongVarWChar ですよね。
長整数型なら、DataTypeEnum.adInteger (=3)だと思いますけど。


で、mdb のオートナンバーフィールドとは、「自動採番機能付きのフィールド」であり、
長整数型であるとは限りません。GUID 型である DataTypeEnum.adGUID (=72) の場合もあります。


> オートナンバーと長整数を特定することは可能なのでしょうか?
幾つかの方法がありますが、とりあえず、
 Debug.Print cat.Tables(tableName).Columns(fieldName).Properties("AutoIncrement").Value
とか。

投稿時間:2007/06/04(Mon) 16:59
投稿者名:たかはし
Eメール:
URL :
タイトル:
Re^2: ACCESSデータ型の取得(オートナンバー型と長整数型)
> > この場合にMDBのデータ型のオートナンバー型と長整数型が同じ
> > 「203」という値となっております。
> ん? 203 って、DataTypeEnum.adLongVarWChar ですよね。
> 長整数型なら、DataTypeEnum.adInteger (=3)だと思いますけど。
>
申し訳ございません。「3」でした。
203はメモ型でした・・・。

> で、mdb のオートナンバーフィールドとは、「自動採番機能付きのフィールド」であり、
> 長整数型であるとは限りません。GUID 型である DataTypeEnum.adGUID (=72) の場合もあります。
>
> > オートナンバーと長整数を特定することは可能なのでしょうか?
> 幾つかの方法がありますが、とりあえず、
>  Debug.Print cat.Tables(tableName).Columns(fieldName).Properties("AutoIncrement").Value
> とか。

なるほど、プロパティですか!
今からトライしてみます。
ありがとうございます。