Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1757 / 2272 ツリー ←次へ | 前へ→

【5424】フォームの非連結のテキストをテーブルに追加 あこ 05/6/20(月) 11:30 質問[未読]
【5426】Re:フォームの非連結のテキストをテーブル... 小僧 05/6/20(月) 11:57 回答[未読]
【5428】Re:フォームの非連結のテキストをテーブル... あこ 05/6/20(月) 13:54 お礼[未読]

【5424】フォームの非連結のテキストをテーブルに...
質問  あこ  - 05/6/20(月) 11:30 -

引用なし
パスワード
   フォームある非連結のテキストをテーブルに書き込みたいと思います。
【3562】の投稿を見てかなりできたのですが、最後の最後でエラーがでます。
ご助言お願いします。

フォームには、txt支給iというデータが20個あります。
データがnullでないときだけテーブルに一件追加します。5件の入力があれば5レコードできる・・・といった感じです。

  Dim DB As Database
  Dim rs_支給 As Recordset
  Dim I As Integer

  Do Until Me("txt支給" & Format(I, "0")).Value Is Null
    rs_支給.AddNew
    rs_支給![No.] = Me![txtNo.]
    rs_支給![支給部品] = Me("txt支給" & Format(I, "0")).Value
    
    rs_支給.Update
    I = I + 1
  Loop

DO UNTIL のところで「オブジェクトが必要です」と出ます。
ちなみに、条件を Me("txt支給" & Format(I, "0")).Value <> Null にすると動くのですが、21個目のテキストはないのでそこでエラーになります。
FOR文で回せばよいのでしょうが、NULL値は入れたくないし、効率が悪いかと・・・。

長々と書きましたがよろしくお願い致します。

【5426】Re:フォームの非連結のテキストをテーブル...
回答  小僧  - 05/6/20(月) 11:57 -

引用なし
パスワード
   ▼あこ さん:
こんにちは。

「txt支給1」 に値が入っていなくて「txt支給2」に値が入っていた場合、
ループを抜けてしまって良いのでしょうか?

>For I = 1 to 20
>  If IsNull(Me("txt支給" & Format(I, "0")).Value) Then>
>    '処理
>  End If
>NEXT

「Null値」を見つけたらループを出る場合なら

>For I = 1 to 20
>  If IsNull(Me("txt支給" & Format(I, "0")).Value) Then
>    '処理  
>  Else
>    Exit For
>  End If
>NEXT

でどうでしょうか?

※テーブルのフィールド名に「.」を含ませると予期せぬエラーが発生する
 場合があります。
> [#5245]一読してみてください。
 にて クロ さんがご紹介されているリンク先を参考になさると良いかもです。

【5428】Re:フォームの非連結のテキストをテーブル...
お礼  あこ  - 05/6/20(月) 13:54 -

引用なし
パスワード
   小僧さん、早々の回答ありがとうございます!
なんとか思い通りの処理ができました。
クロさんのリンクもとても参考になりました。

本当にありがとうございました。

1757 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078264
(SS)C-BOARD v3.8 is Free