アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちわ!
宜しくお願いします。

Excelマクロについての質問です。

Excelのバージョンは2010を使用しています。

OracleDB + ODBにADOで接続し、SELECT文を発行した結果をrecordsetに格納し、
copyFromRecordsetで表に転記しています。


問題は、「数値が16桁」以上の場合、Excelくんがよろしく15桁にあわせてしまうことです。
(数値は15桁までの仕様というのは知っています。)


セルの書式設定を文字列にすれば問題ないのでしょうが、copyFromRecordsetメソッドを使うと、「標準」に戻されてしまいます。

下記の方法を参照しましたが、もう少し簡単に実装できないかと思いご質問させて頂きました。

http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one; …


_/_/_/_/_/_/_/_/_/_/以下サンプルです。_/_/_/_/_/_/_/_/_/_/

'ADOコネクションの生成
cn.Open "Provider=OraOLEDB.Oracle;Data Source=" & ActiveSheet.Cells(26, 1) & ";User ID=scott;Password=tiger;", "scott", "tiger"
'ADOレコードセットの生成(全データを返すレコードセットの生成)
rs.Open "select * from emp", cn, adOpenDynamic, adLockOptimistic, adCmdText
cn.Range("A4").CopyFromRecordset rs

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/


どうか宜しくお願い致します。

A 回答 (1件)

SELECT文で必要なフィールドだけ文字列に変換するわけにはいかないのですか?


ACCESSで言えば
"select field1,cstr(field2),field3 from emp"

Oracleだとto_char() ?
#Oracle使った事なのでのハズしてたらすみません。

CopyFromRecordsetを使わないんだったら
rs.GetRowsメソッドでデータを一旦、配列に取得し、
別の文字列型配列にTransposeして貼り付けるとか。
..も考えられます。
    • good
    • 0

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