Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2212 / 13645 ツリー ←次へ | 前へ→

【69356】RecordSetの小数点表示について kulolo 11/6/29(水) 20:49 質問[未読]
【69358】Re:RecordSetの小数点表示について SK63 11/6/30(木) 9:23 発言[未読]
【69360】Re:RecordSetの小数点表示について kulolo 11/6/30(木) 9:38 回答[未読]
【69362】Re:RecordSetの小数点表示について SK63 11/6/30(木) 9:49 発言[未読]
【69363】Re:RecordSetの小数点表示について kulolo 11/6/30(木) 10:08 お礼[未読]

【69356】RecordSetの小数点表示について
質問  kulolo  - 11/6/29(水) 20:49 -

引用なし
パスワード
   はじめまして。
現在、RecordSetを利用してプログラムを開発しております。
その中でデータベースで格納されている値と違う値が入ってくる事に悩んでおります。

Postgresのnumeric型に「8.3」などの値が格納されています。
これをRecordSetにて取得すると「8」として取得してしまいます。


具体的なコードとしては下記の通りです。

Dim Rs As New ADODB.Recordset

Rs.Open "select 価格 from 商品情報", Cn
Do Until Rs.EOF = True
  Debug.Print Rs("価格").Value
Loop
Rs.Close

恐らく、データ型がInt型などで入ってきているような気がしますが、
これをOpen時に型指定して読み込む方法が分かりません。

大変申し訳ないのですが、有識者の皆様のご意見をお聞きしたいです。

【69358】Re:RecordSetの小数点表示について
発言  SK63  - 11/6/30(木) 9:23 -

引用なし
パスワード
   error になりませんか?

ウオッチウインドウでは??
変数にString(文字列型) Dim strBUF As String 
Single(単精度浮動小数点型) 例えばDim sngS As Single
を使って Rs("価格").Value代入するとどうなりますか?


▼kulolo さん:
>はじめまして。
>現在、RecordSetを利用してプログラムを開発しております。
>その中でデータベースで格納されている値と違う値が入ってくる事に悩んでおります。
>
>Postgresのnumeric型に「8.3」などの値が格納されています。
>これをRecordSetにて取得すると「8」として取得してしまいます。
>
>
>具体的なコードとしては下記の通りです。
>
>Dim Rs As New ADODB.Recordset
>
>Rs.Open "select 価格 from 商品情報", Cn
>Do Until Rs.EOF = True
>  Debug.Print Rs("価格").Value
>Loop
>Rs.Close
>
>恐らく、データ型がInt型などで入ってきているような気がしますが、
>これをOpen時に型指定して読み込む方法が分かりません。
>
>大変申し訳ないのですが、有識者の皆様のご意見をお聞きしたいです。

【69360】Re:RecordSetの小数点表示について
回答  kulolo  - 11/6/30(木) 9:38 -

引用なし
パスワード
   ご返信ありがとうございます。

>error になりませんか?

Errorにはなりません。

>ウオッチウインドウでは??

ウオッチウインドウは利用していません。

文字列型及び、単精度浮動小数点型に格納した場合は下記のようになります。

String:8
Single:8

同じですね・・・。
何が悪いのかが分からないのです。
Accessなどでテーブルを直接確認すると、正しく小数点が格納されている形です。
RecordSetをOpenする際に、フィールドの型を設定出来れば良いのですが・・・。


▼SK63 さん:
>error になりませんか?
>
>ウオッチウインドウでは??
>変数にString(文字列型) Dim strBUF As String 
>Single(単精度浮動小数点型) 例えばDim sngS As Single
>を使って Rs("価格").Value代入するとどうなりますか?

【69362】Re:RecordSetの小数点表示について
発言  SK63  - 11/6/30(木) 9:49 -

引用なし
パスワード
   ACCからSELECTでデータをもらったことがないので
ポイントがずれているかもしれませんが、そしたら御免なさい。

Array(1, 2)のように型指定して配列に代入することが出来ます。
ACCのデータは数値型、文字列なのかは確認してあるでしょうか?
問題なければSELECT文でなっているのではないでしょうか??
単純な処がミスがあったりしますので。

【69363】Re:RecordSetの小数点表示について
お礼  kulolo  - 11/6/30(木) 10:08 -

引用なし
パスワード
   色々と調べてみたのですが、結局分からず仕舞いでした。
実は取得した後に、小数点第一位を切り上げる処理を行う予定でしたので、
仕方ないので、Select文側で切り上げて持ってくる事にしました。

※本当はちゃんと調べないといけないのでしょうが・・・。

今回はご回答頂き、ありがとうございました。


▼SK63 さん:
>ACCからSELECTでデータをもらったことがないので
>ポイントがずれているかもしれませんが、そしたら御免なさい。
>
>Array(1, 2)のように型指定して配列に代入することが出来ます。
>ACCのデータは数値型、文字列なのかは確認してあるでしょうか?
>問題なければSELECT文でなっているのではないでしょうか??
>単純な処がミスがあったりしますので。

2212 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free