Date: Tue, 26 Feb 2002 13:47:01 +0900
 From: "Akira Horikawa" <who@example.ne.jp>
 
 
堀川です、こんにちは
-----Original Message-----
From: Nobuhiro Takatsuki [mailto:who@sub.example.jp] 
Sent: Monday, February 25, 2002 6:18 PM
To: who@example.ne.jp
Subject: [ml-msde-beg:00113] Re: Excel から MSDE のテーブルデータをアッ
プデート
>だから,テーブルをソースとしてレコードセットをオープンすると,
>数万件のテーブルをすべてクライアントに持ってくることになるので一時
>テーブルを利用して,レコードを絞ってからと考えました。
テーブルをレコードソースにした場合でも、MaxRecords プロパティで
取得するレコード数を調節することは可能です。
デフォルトでは全レコード数を取得するので、注意が必要です。
現実的には、検索条件を与えてレコードを絞り込んで、それでもレコード数
が多いときは、MaxRecords プロパティで取得するレコード数の上限を決める
とよいでしょう
レコードを絞り込むことが大事です。
>この更新用のテーブルの更新する[data]フィールドはintに設定してあり
>ます。Excelのほうでも計算に利用するので数値データとして扱います
数値データでも、Excelでは空のセルが許されます
しかし空のセルは空文字列という扱いで、データベースから見ると、
数値型データではありません。
空文字列は長さ0の文字列であり、データベースでは文字列型データで
取り扱います
      declare @i     int
      declare @ch  varchar(10)
      select @ch = ''
      select @i = @ch
空文字列を無理矢理整数型に代入すると、数字ゼロに直します。
これをNULLにしたい場合は、
     select @ch=''
     select @i = case 
                          when @ch = '' then NULL
                          else cast(@ch as int )
              end
のように、CASE関数を使います。
NULL値の変換をVB側で行なうのであれば、VBのIIF関数を
使うことができます。
 myRs.Fields(0).Value = IIF(  Cells(i,4)<>"", Cells(i,4).Value,Null)
------------------------------------
(株)日本技術ソフト開発
        堀川 明  (Akira Horikawa)
    02月26日(火曜日) 13時46分記
        mailto:who@example.ne.jp
        http://www.horikawa.ne.jp/msde/
 
  
| [MSDE/SQLServerに関して、今、どんなことにお困りですか?] |  
| よろしければお困りの内容を、電子メールで教えて下さい。 |  
| 
質問を電子メールで作成する
 |  
 
  [ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧] 
                                 
                        |