- ベストアンサー
アクセスであるフォームから別のフォームへリンクさせる際の不具合について
アクセス2000で、あるフォームからコマンドボタンを用いて別のフォームへリンクさせました。氏名というフィールドを共通の項目としてリンクさせたのですが、氏名を入力し、コマンドボタンをクリックした場合、リンク先には飛ぶのですが、リンク先には前に入力した氏名が反映されていません(氏名も何も入力されていないフォームが開きます)。 フォーム入力画面で、氏名を入力したとに、新しいレコードを開き、その後もう一度、氏名を入力したレコードに戻って、ここでコマンドボタンをクリックすると今度はリンク先にも氏名が反映されています。 これは、どこに問題があるのでしょか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>氏名を入力しコマンドボタンをクリックした場合リンク先には飛ぶのですがリンク先には前に入力した氏名が反映されていません そのフォームに入力されている状態ではテーブルにまだ保存されていないため氏名をリンクしてあっても他のフォームを開いた時に他のフォームの氏名に反映されません。 ボタンをクリックした時点でテーブルに保存されないとダメです。 そのため一度テーブルに保存後再度フォームを開き別のフォームを開くと反映される状態になるんです。 別のフォームを開くボタンにレコードをテーブルに保存する記述を追加して、フォーム上のレコードをテーブルに保存しフォームを開くようにイベントを変更すればできます。
その他の回答 (1)
- KenKen_SP
- ベストアンサー率62% (785/1258)
>氏名を入力し、コマンドボタンをクリックした場合... この時点でまだレコードが保存されていないからです。保存されていないレコードを読み取って、フォームを表示するわけですから、当然反映されてません。 また、レコードを移動させるとそれまで入力していたレコードが確定し、保存されます。したがって、レコード移動後は反映されているのです。 これは正常な動作です。 氏名を入力した時点で、例えば、After_Updateイベントと使ってレコードを保存するようVBAでコーディングすればご希望の動作はできなくはありませんが、お勧めしません。 例えば、「名前を一度は入力したけど、やっぱり止めよう」となったとき、名前を入力しただけで、レコードが登録されていたら、レコードを削除しなければなりませんので大変(面倒)ですね。やはり、[ESC]キーで入力キャンセルできた方が良いのではないかと思います。
お礼
ご回答ありがとうございます。 べつに異常ではないのですね。
お礼
度々ご回答ありがとうございます。 >別のフォームを開くボタンにレコードをテーブルに保 >存する記述を追加して、フォーム上のレコードをテー >ブルに保存しフォームを開くようにイベントを変更す >ればできます。 すみません。どうゆうふうな記述にすればよいでしょうか。余裕があればお願いします。