- ベストアンサー
MSアクセス データの更新方法とは?
- MSアクセスにおけるデータの更新方法について詳しく教えてください。
- MSアクセスで新規データを登録した後に、自動的に表示する方法について教えてください。
- MSアクセスと比べて、「ファイルメーカー」というソフトウェアのスクリプトとは異なるアクセスのマクロの機能について教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1です > 再クエリが1回分遅れます。 > [B]で何回か入力すると、その時の入力分は更新されず、 > 前回の入力分だけ更新されていきます。 > [B]で新規登録した後[A]に戻っても、 戻ると表現されていたのは、[B]を閉じる、で良かったのでしょうか。 [B]を閉じずに[A]に行ったり、[B]に行ったりしているのでしょうか。 閉じずに反映する時には、[B]の更新後処理イベントで、 オブジェクトの選択 フォーム, フォーム[A]名, いいえ 再クエリ をやってみてください。 この時、[B]がポップアップになっていない時など、[A]に表示が切り替わるので 再クエリの後に、 オブジェクトの選択 フォーム, フォーム[B]名, いいえ を追加して、[B]を表示するようにします。 また、[B]を閉じる方法が複数ある場合には、[B]の閉じる時イベントで オブジェクトの選択 フォーム, フォーム[A]名, いいえ 再クエリ をやってみてください。
その他の回答 (1)
- 30246kiku
- ベストアンサー率73% (370/504)
フォーム[B]での記述になりますが、 例えば、閉じる時の記述が、 DoCmd.Close acForm, Me.Name, acSaveNo に、なっていたとした時、 Me.Visible = False Screen.ActiveForm.Requery DoCmd.Close acForm, Me.Name, acSaveNo と、してみてください。 フォーム[B]を非表示にした時に、アクティブになるフォームを再クエリして、閉じるものになります。 フォーム[B]が、いろいろなフォームから起動される時に使えるものになると思います。 但し、非表示にした時にアクティブになるフォームが呼び出し側でないことがあるのであれば、 フォーム[B]の開く時イベントで、呼び出し側を覚えておく処理が必要になります。 (この記述が必要であれば、補足してください) また、フォーム[A]からしか起動されないのであれば Forms("フォーム[A]名").Requery DoCmd.Close acForm, Me.Name, acSaveNo でも良いと思います。 マクロであれば、 オブジェクトの選択 フォーム, フォーム[A]名, いいえ 再クエリ 閉じる フォーム, フォーム[B]名, しない になるのでしょうか。
補足
ご回答、ありがとうございます。 再クエリが1回分遅れます。 [B]で何回か入力すると、その時の入力分は更新されず、前回の入力分だけ更新されていきます。 ちなみに、テーブルとフォームしか作っていなく、クエリはまだない状態です。 >閉じる フォーム, フォーム[B]名, 確認 <--変更しました。 閉じる ・・・ 「しない」 ですと、 「引数'オブジェクトの保存'を指定した場合、'Close'マクロアクションを無効にしたり、埋め込みマクロから呼び出して実行したりすることはできません。」 とメッセージがでます。 たぶんフォーム[B]のプロパティかと思うのですが、'オブジェクトの保存'が見当たりません。 「ファイルメーカー」のスクリプトの手軽さにすっかりハマってしまったので、今回は全文マクロが理想なのですが・・・ よろしくお願い致します。
お礼
[B]はポップアップです。 [B]に「新規登録完了」ボタンを置いて、それにマクロをかいていました。 ・閉じる ・再クエリ の2行で、しっかりと親フォームに戻ってからの再クエリで希望どうりの動きができました。 そこで[B]に「新規登録キャンセル」ボタンを置いて ・コマンドの実行・・「元に戻す」 ・閉じる これもできましたが、これで良いのでしょうか? ただ、これだとID番号(オートナンバー)がインクリメントされてしまいます。 当然といえば当然なのですが 以前、アクセスを使った時は全てVBAで処理してましたが、マクロでも結構行けそうです。 ありがとうございました。