VBでAccessにDAO6.0で接続し、
db(Access)のフィールドサイズを測ってから
値を挿入するようにしています。
しかし、Access側の設定が数値型で十進法を設定しているフィールドに対し、
入力桁制限に当たる「精度」の値が取得したいのですが精度が幾つであろうと
Tabledef Fieldオブジェクトの.sizeプロパティーで取得すると
設定と違う16と言う値が取得されてしまいます。
この精度を取得する方法はないのでしょうか?
Dim Fld as Object
Dim TBL as TableDef
For Each Fld In TBL.Fields
i = Fld.Size
Next
と言った感じに今はやってます。
ADO(X)ですと、
.Precision '精度
.NumericScale '小数点以下
が取得できそうですが、
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpado260/htm/mdpronumericscalex.asp
DAO.Fieldだとヘルプを見る限り載っていません。
なお、
解決したらマルチポスト先にも必ず結果報告を行ってください。
どこのサイトでも、
貴殿と同様の悩みをもって過去ログ検索する人が少なからず居るでしょうし、
検索した際に、回答にたどり着けないと残念ですよね。
(自分さえ良ければ...なんてことでは無いと信じますが)
http://hanatyan.sakura.ne.jp/vbbbs/wforum.cgi?no=8319&reno=no&oya=8319&mode=msgview&page=0
ありがとうございました。
しかしDAO→ADOの切替が面倒ゆえ、
没になりそうです。もしくはADOの作り変え・・・
とほほです。
マルチ先の件了解しました。
ありがとうございます。
DAO ならば、Property オブジェクト経由で取得してみましょう。
ツイート | ![]() |