• ベストアンサー

Insertについて

VB6.0 SQLSERVERで開発しています。 データグリッドに入力したものを SQLSERVERへInsertしているのですが 例えば 品番  品名   日付    数量 1   あいう  2007/05/16  5 2   かきく   3   さしす  2007/05/17  4   たちつ         10 とデータグリッドへ入力したとします。 Insertするときに日付と数量が入っているものだけを Insertしたいのです。 日付だけや数量だけというものもInsertせずに 日付と数量両方入力されているものを Insertしたいのですがどうすればいいのでしょうか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ape5
  • ベストアンサー率57% (85/148)
回答No.4

If .Columns(DATA_03).Value <> "" And .Columns(DATA_04) <> "" Then  -------------------------------------------------------- では、どうでしょうか? pvBase.CvtSQL(.Columns(DATA_03).Value, CVT_DBL) とか Base.CvtSQL(.Columns(DATA_04), CVT_STR)は、SQL文(の一部?)を作成しているのではないでしょうか? もしそうであれば、そこは空文字列にはならないので、試すとうまくいかないのかなと思います。 判定する相手は、データグリッドの各セルの値なのでそこに気をつければうまくいくと思います^^

aki08102001
質問者

お礼

If .Columns(DATA_03).Value <> "" And .Columns(DATA_04) <> "" Then  これでうまく出来ました。 ありがとうございます。

その他の回答 (3)

回答No.3

#2さんので 私もOKだと思います。 やってるとは思いますが グリッドの内容をもう一度 (1)Debug.Printとかしてみて 値がきてるか確認してみるとか? (2)グリッドの内容を配列に格納して 試してみるとか?

  • ape5
  • ベストアンサー率57% (85/148)
回答No.2

if 日付 <> "" and 数量 <> "" then  Insertの実行 end if ------------------------------------------------ のような感じになるでしょうか。 日付や数量が有効な値とかのチェックも必要かと思いますので、その辺は実装してみてください。

aki08102001
質問者

補足

If pvBase.CvtSQL(.Columns(DATA_03).Value, CVT_DBL) <> "" And pvBase.CvtSQL(.Columns(DATA_04), CVT_STR) <> "" Then としたのですが 品番  品名   日付    数量 1   あいう  2007/05/16  5 2   かきく   3   さしす  2007/05/17  4   たちつ         10 というように日付・数量どちらかに空白があるデータも課kれてしまいます。 ""をMullに変えてみたのですが今度はどれもかかれなくなりました。

  • arihina
  • ベストアンサー率26% (4/15)
回答No.1

参考URLをご覧ください。

参考URL:
http://msdn2.microsoft.com/ja-jp/library/sdbcfyzh(VS.80).aspx