掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
1桁空白データを読込むと空白になってしまうのは? (ID:85286)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ご質問があります。宜しくお願い致します。 オラクル上に「TABLE_DATA」テーブルがあります。 TABLE_DATAのフィールドは「A,B,C」とあり、それぞれ1桁のテキスト になっており、Aには1か2が必ず入り、BとCについては既定値が1桁の 空白になっており、通常は適当な文字が入るようになっています。 次にTEST1.mdbとTEST2.mdbがあり、両方ともTABLE_DATAと同じ構造の テーブルが入っています。(レコードは無し) さて、何をしたいかですが、Aに1が入っている場合は、TEST1.mdbに 出力し、Aに2が入っている場合はTEST2.mdbに出力しようとしています。 で、以下のコードを書いたのですが、BとCについて1桁の空白のの時、 mdb側を見るとnullになってしまっています。 動作させて確認すると、「ORS.Fields("B").Value」は"△"(△:半角空白) ではなくて、""になっています。 これを回避するためにはどうすればいいのでしょうか。 単純に「mobjTblTmp!B = Left$(ORS.Fields("B").Value & " ",1)」 としてあげればいいのでしょうが、今テストで行っているフィールド のサイズは1桁程度ですが、実はこれから行おうとしているテーブル では、1フィールドサイズが100とか200とかのもありますので、あまり これは現実的では無いと思ったので・・・。 また、このコードの書き方はおかしい!。単純に右から左に入れるだけ なんであればこんなやり方がある!。と言うのもありましたら、ご指摘 頂ければと思います。 まだまだVBをやり込めていないため、あちこち検索しては試している 状態なので、つぎはぎだらけのコードになっています・・・。 (お恥ずかしい) 何卒宜しくお願い致します。 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− Private mobjOdb As OraDatabase Private mobjOss As Object Private mobjWS As Workspace Private mobjMDB1 As Database Private mobjMDB2 As Database Private mobjTbl1 As Recordset Private mobjTbl2 As Recordset Private mobjTblTmp As Recordset 'Oracle Set mobjOss = CreateObject("oracleinprocserver.xorasession") Set mobjOdb = mobjOss.OpenDatabase("TEST", "TEST/TEST", 0&) 'mdb Set mobjWS = CreateWorkspace("", "admin", "", dbUseJet) Set mobjMDB1 = mobjWS.OpenDatabase("TEST1.mdb", True) Set mobjMDB2 = mobjWS.OpenDatabase("TEST2.mdb", True) Set mobjTbl1 = mobjMDB1.OpenRecordset("TABLE_DATA", dbOpenTable) Set mobjTbl2 = mobjMDB2.OpenRecordset("TABLE_DATA", dbOpenTable) Set ORS = mobjOdb.CreateDynaset("SELECT * from TABLE_DATA", 0&) Do Until ORS.EOF If ORS.Fields("A").Value = "1" Then Set mobjTblTmp = mobjTbl1 Else Set mobjTblTmp = mobjTbl2 End If mobjTblTmp.AddNew mobjTblTmp!A = ORS.Fields("A").Value mobjTblTmp!B = ORS.Fields("B").Value mobjTblTmp!C = ORS.Fields("C").Value mobjTblTmp.Update ORS.MoveNext Loop
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.