|
>これで動くことは動くのですが、サブフォームの最後の行を入れるときにだけ
>何も入らず(サブフォームは複数行の入力が可能)
サブフォームの最後の行の場合に更新されないのは、
当該レコードがまだテーブルに保存されていないからだと思います。
そのレコードをテーブルに保存してから更新クエリを実行すれば、
きちんと更新クエリが効くと思います。
テーブルの保存は、
DoCmd.RunCommand acCmdSaveRecord
というコードで行います。
ただ、テキストボックスに値を代入すれば足りるところを、更新クエリを使うのは、
大がかり過ぎており、あまり一般的な方法ではないと思います。
>もう一度商品コードを入れると他のユーザーによって変更が加えられましたとか
>なんとかいうメッセージが出て、他のユーザーの変更を反映するというボタンを
>押すとやっとのことでコードに値が入ります
このエラーメッセージには私もときどき遭遇します。
原因は私もよくわからないのですが、
フォームで編集中のレコードを、テーブルのレベルでも内容を書き替えたりすると、
このエラーメッセージが出るようです。
つまり、レコードが二重に編集されているということなのだと思います。
回避策としては、フォームでレコードを編集中に更新クエリを実行するのはやめる
ということになると思います。
そうすると、最初の、VBAで値の代入ということに戻ってきます。
>メインフォームのテキストボックスの更新後イベントに書いてみたんですが、
>サブフォームが見つからないとかなんとか言われてうまくいかなかったので、
どんなコードを書いたんですか。
特に、メインフォームのプロシージャにおいて、
サブフォームのコントロールをどのように書くかというところは、
初心者がつまづきやすいところなので、それをどのように書いたのか気になります。
|
|