[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『レコードセットにnullを追加する方法』(モゲラ)
Oracleから取得したレコードセットを再加工して取り扱おうと思いレコードセットをコピーする関数を作成しました
しかしこれではnull値が発生した場合AddNewする際にエラーが発生してしまいます
nullをAddNewする方法はないでしょうか?
Public Function CopyRecordset(ByVal orgrs As Object) As Object
Dim rtn As Object: Set rtn = CreateObject("ADODB.Recordset") Dim i As Long, n As Long: n = orgrs.Fields.Count - 1 Dim clm As Variant: ReDim clm(n) For i = 0 To n With orgrs.Fields(i) clm(i) = .Name rtn.Fields.Append clm(i), .Type, .DefinedSize End With Next i rtn.Open
Dim rcd As Variant: ReDim rcd(UBound(clm)) orgrs.MoveFirst Do Until orgrs.EOF For i = 0 To n rcd(i) = orgrs.Fields(i).Value Next i rtn.AddNew clm, rcd orgrs.MoveNext Loop
Set CopyRecordset = rtn End Function
< 使用 Excel:Office365、使用 OS:Windows10 >
自分のコード見たら↓こんなげな事やってました。
rcd(i) = orgrs.Fields(i).Value If rcd(i) = Null Then rcd(i) = Empty If rcd(i) = vbNullChar Then rcd(i) = Empty If IsNull(rcd(i)) Then rcd(i) = Empty If Application.IsText(rcd(i)) Then rcd(i) = Application.Clean(rcd(i)) '←ついでに
どれが効いてるのかよく分かんないので、とりあえず全部入れてた・・・って感じですね^^;
(白茶) 2021/02/02(火) 20:05
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.