- ベストアンサー
Insertについて
VB6.0 SQLSERVERで開発しています。 データグリッドに入力したものを SQLSERVERへInsertしているのですが 例えば 品番 品名 日付 数量 1 あいう 2007/05/16 5 2 かきく 3 さしす 2007/05/17 4 たちつ 10 とデータグリッドへ入力したとします。 Insertするときに日付と数量が入っているものだけを Insertしたいのです。 日付だけや数量だけというものもInsertせずに 日付と数量両方入力されているものを Insertしたいのですがどうすればいいのでしょうか。 よろしくお願いします。
- みんなの回答 (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文(の一部?)を作成しているのではないでしょうか? もしそうであれば、そこは空文字列にはならないので、試すとうまくいかないのかなと思います。 判定する相手は、データグリッドの各セルの値なのでそこに気をつければうまくいくと思います^^
その他の回答 (3)
- sendaitaro
- ベストアンサー率25% (6/24)
#2さんので 私もOKだと思います。 やってるとは思いますが グリッドの内容をもう一度 (1)Debug.Printとかしてみて 値がきてるか確認してみるとか? (2)グリッドの内容を配列に格納して 試してみるとか?
- ape5
- ベストアンサー率57% (85/148)
if 日付 <> "" and 数量 <> "" then Insertの実行 end if ------------------------------------------------ のような感じになるでしょうか。 日付や数量が有効な値とかのチェックも必要かと思いますので、その辺は実装してみてください。
補足
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)
参考URLをご覧ください。
お礼
If .Columns(DATA_03).Value <> "" And .Columns(DATA_04) <> "" Then これでうまく出来ました。 ありがとうございます。