この EXCEL VBA での選択は、Excel の数値形式になります。
strSQL = "SELECT * FROM OPENQUERY(dtb, 'SELECT col from table')"
しかし、列に関数を作成すると、Excel でテキスト形式になります。
strSQL = "SELECT * FROM OPENQUERY(dtb, 'SELECT sum(col) from table')"
strSQL = "SELECT * FROM OPENQUERY(dtb, 'SELECT col*1.0 from table')"
strSQL = "SELECT * FROM OPENQUERY(dtb, 'SELECT col-1 from table')"
試してみましたがto_number(...)
、to_number(to_char(...))
役に立ちませんでした。
なんで?どうすればこの状況を解決できますか?
解決策(SQL サーバーのキャスト関数を使用して列を数値に変換する)
strSQL = "SELECT cast(col# as numeric(10, 2)) col# " _
"FROM OPENQUERY(dtb, 'SELECT sum(col) col# from table')"