プロが教える店舗&オフィスのセキュリティ対策術

VBA初心者です。
データベースの入力用にフォームを作成しました。
登録コマンドボタンをクリックすると、フォームに入力した内容が、データベースの各項目に反映されるようになっています。
このフォームでは、いくら各項目に入力しても、登録ボタンを押さない限り、データベースには反映されません。もちろんフォームからこれまで入力したデータベースの内容は見ることができません。
しかし先日、Excelの文書件名簿ソフトで、項目1つ1つ入力するごとに、その都度データベースに反映されていくものがありました。
「次のページ」コマンドボタンはありますがこれを押す前にすでにフォームに入力した項目はデータベースに反映されています。
「前のページ」ボタンもあり、これを押すとこれまで入力してきたデータが順番にフォームで見ることができます。
このようなフォームはどのように作ればよろしいでしょうか?

A 回答 (1件)

テキストボックス等のイベントでシートに書き込んでいるのでしょう。


この例ではテキストボックスに書き込んで、Enterを押したときセルに書き込みます。
Private Sub TextBox2_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
ActiveSheet.Cells(Val(TextBox1.Value), 1).Value = TextBox2.Value
End Sub
こちらの場合は、1文字入力する毎にセルに書き込みます。
Private Sub TextBox2_Change()
ActiveSheet.Cells(Val(TextBox1.Value), 1).Value = TextBox2.Value
End Sub
ただ、「やっぱり止めた」という時にシートの方のデータを消去する処理が必要になるので、あまりお勧めできません。
フォームからこれまでのデータを見るのは、umineko315さんがシートに書き込む操作の逆の操作を行っているものです。
    • good
    • 0
この回答へのお礼

2つのパターンについて、わかりやすく回答していただいてとても参考になりました。ありがとうございました。

お礼日時:2008/10/17 15:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!