• 締切済み

copyRecordsetの数値16桁以上について

こんにちわ! 宜しくお願いします。 Excelマクロについての質問です。 Excelのバージョンは2010を使用しています。 OracleDB + ODBにADOで接続し、SELECT文を発行した結果をrecordsetに格納し、 copyFromRecordsetで表に転記しています。 問題は、「数値が16桁」以上の場合、Excelくんがよろしく15桁にあわせてしまうことです。 (数値は15桁までの仕様というのは知っています。) セルの書式設定を文字列にすれば問題ないのでしょうが、copyFromRecordsetメソッドを使うと、「標準」に戻されてしまいます。 下記の方法を参照しましたが、もう少し簡単に実装できないかと思いご質問させて頂きました。 http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=70229;id=excel _/_/_/_/_/_/_/_/_/_/以下サンプルです。_/_/_/_/_/_/_/_/_/_/ '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 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ どうか宜しくお願い致します。

みんなの回答

  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

SELECT文で必要なフィールドだけ文字列に変換するわけにはいかないのですか? ACCESSで言えば "select field1,cstr(field2),field3 from emp" Oracleだとto_char() ? #Oracle使った事なのでのハズしてたらすみません。 CopyFromRecordsetを使わないんだったら rs.GetRowsメソッドでデータを一旦、配列に取得し、 別の文字列型配列にTransposeして貼り付けるとか。 ..も考えられます。

すると、全ての回答が全文表示されます。

関連するQ&A