VBAのADODB.ConnectionオブジェクトとSQL文を使ってエクセルにデータ抽出しようとしています。
SELECT文でOracle Database抽出しようとしています。
下記の場合の抽出方法が分かりません。
内容はテーブル内の特定フィールドから指定文字数を抽出したいです。
【受注テーブル】・・テーブルIDは ”JUTYU”
フィールドは4つで”CODE”と”NAME”、"SIIRE"、"SHUKKA"です。
CODEは商品品番、NAMEはその商品名、SIIREは入荷日、SHUKKAは出荷日のイメージです。
CODE NAME SIIRE SHUKKA
A123 テレビ 201704211 201704171
A124 冷蔵庫 201704211 201704171
A125 Fax 201704211 201704171
A126 パソコン 201704251 201704191
A127 プレーヤー 201704251 201704191
A128 洗濯機 201704251 201704191
ここで、"SIIRE"、"SHUKKA"は9桁の数字になっています。
西暦4桁+月2桁+日2桁+1
抽出結果には下1桁の”1”は削除し、
8桁(西暦4桁+月2桁+日2桁)で抽出したいです。
Dim strSQL As String strSQL = "select JUTYU.CODE,JUTYU.NAME,LEFT('JUTYU.SIIRE',8),LEFT('JUTYU.SHUKKA',8)" strSQL = strSQL & " from JUTYU"
"SIIRE"、"SHUKKA" はLEFTを使って左から8桁を抽出するようにしたつもりなのですが、
上手くできません。
修正コードを教えて頂きたいです。
★回答を頂き、SUBSTR(SIIRE,1,8),SUBSTR(SHUKKA,1,8) とすることで8桁で抽出することができました。
しかし、フィールド名を表示しなくなってしまいました。
フィールド名は下記コードで表示させています。エクセルへの出力シートは抽出結果です。
wMX = adoRs.Fields.Count For N = 1 To wMX With Sheets("抽出結果") .Cells(1, N) = adoRs.Fields(N - 1).NAME End With Next
文字数指定で抽出するとフィールド名が表示されなくなるのでしょうか?
教えて頂きたいです。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。