Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : Access 2010)
表の一番下のレコードに自動で行きたい
投稿日時: 18/05/10 15:08:11
投稿者: nanodia

フォームで作られた表を再クエリすると
最初のレコードに戻ってしまいます。
 
これを、最新のレコード(一番下)に持っていくには
どうすればよいでしょうか。

回答
投稿日時: 18/05/10 15:23:01
投稿者: sk

引用:
フォームで作られた表を再クエリすると
最初のレコードに戻ってしまいます。

引用:
表の一番下のレコードに自動で行きたい

・何らかのマクロにおいて[再クエリ]アクションを実行している場合は、
 その直後に[レコードの移動]アクションを実行して
 カレントレコードを最後のレコードに移動させるようにする。
 
・何らかのモジュールにおいて DoCmd オブジェクトまたは Form オブジェクトの
 Requery メソッドを実行している場合は、GoToRecord メソッドを実行するなどして
 カレントレコードを最後のレコードに移動させるようにする。

投稿日時: 18/05/10 15:42:43
投稿者: nanodia

メインフォームとサブフォームのサブフォーム内のレコードをしたいのですが、
「レコードの移動」をしましたができませんでした

回答
投稿日時: 18/05/10 16:02:40
投稿者: sk

引用:
メインフォームとサブフォームのサブフォーム内のレコードをしたいのですが、
「レコードの移動」をしましたができませんでした

サブフォームのカレントレコードを最後のレコードに移動させたい場合は、
[コントロールの移動]アクションでサブフォームにフォーカスを移動させてから
[レコードの移動]アクションを実行して下さい。

投稿日時: 18/05/10 16:03:32
投稿者: nanodia

初心者なのでうまくできません
 
再クエリ
コントロールの移動-Forms!F-サブフォーム
レコードの移動-
       オブジェクトの種類  フォーム
    オブジェクト名    F-サブフォーム
       レコード       最後のレコード
 
でよろしいでしょうか

回答
投稿日時: 18/05/10 16:08:41
投稿者: sk

そのマクロはどのオブジェクト/コントロールの
どのイベントで実行されているのでしょうか。
 
例えば、メインフォームのフォームヘッダーセクション上に
配置されているコマンドボタンの[クリック時]イベントでしょうか。
 
また、メインフォームの詳細セクション上に配置されている
サブフォームコントロールの名前は何でしょうか。

投稿日時: 18/05/10 16:10:33
投稿者: nanodia

sk さんの引用:
そのマクロはどのオブジェクト/コントロールの
どのイベントで実行されているのでしょうか。
 
例えば、メインフォームのフォームヘッダーセクション上に
配置されているコマンドボタンの[クリック時]イベントでしょうか。

 
サブフォームのレコードごとにボタンを配置して[クリック時]イベントでしようと思っています。

回答
投稿日時: 18/05/10 16:14:02
投稿者: sk

引用:
サブフォームのレコードごとにボタンを配置して
[クリック時]イベントでしようと思っています。

もしかして、再クエリの目的は「サブフォームのカレントレコードに
対して行なわれた編集内容の保存」でしょうか。

投稿日時: 18/05/10 16:17:56
投稿者: nanodia

[quote="sk"]

引用:

もしかして、再クエリの目的は「サブフォームのカレントレコードに
対して行なわれた編集内容の保存」でしょうか。

 
はい、そうです。サブフォームのフォームでは
新たなレコードが保存されているのですが、
メインフォームにあるサブフォームは表示されなくエラーになるので
エラーレコードを削除して再クエリを行っています。

回答
投稿日時: 18/05/10 16:34:52
投稿者: sk

引用:
サブフォームのレコードごとにボタンを配置

引用:
サブフォームのカレントレコードに対して行なわれた編集内容の保存

これ自体は、サブフォームの詳細セクション上に
配置されたコマンドボタンの[クリック時]イベントで、
[メニューコマンドの実行]アクションを呼び出して
[レコードの保存]コマンドを実行するようにするだけで充分です。
 
(サブフォーム上の他のレコードにフォーカスを移動する、
 メインフォームにフォーカスを移動する、フォームを閉じる
 といった操作を行なっても、編集されたレコードが保存されますが)
 
引用:
はい、そうです。サブフォームのフォームでは
新たなレコードが保存されているのですが、
メインフォームにあるサブフォームは表示されなくエラーになるので
エラーレコードを削除して再クエリを行っています。

メインフォーム/サブフォームの再クエリを行なうべきか否かは、
まずこの現象の原因を突き止めてからではないかと思います。

投稿日時: 18/05/10 17:07:13
投稿者: nanodia

引用:
これ自体は、サブフォームの詳細セクション上に
配置されたコマンドボタンの[クリック時]イベントで、
[メニューコマンドの実行]アクションを呼び出して
[レコードの保存]コマンドを実行するようにするだけで充分です。
(サブフォーム上の他のレコードにフォーカスを移動する、
 メインフォームにフォーカスを移動する、フォームを閉じる
 といった操作を行なっても、編集されたレコードが保存されますが)

既にしており、サブフォームは保存されているのが確認されています。
 
引用:
メインフォーム/サブフォームの再クエリを行なうべきか否かは、
まずこの現象の原因を突き止めてからではないかと思います。

 
原因としましては、メインフォーム/サブフォームによる
サブフォームの詳細な入力を別のフォームでしているからだと思います。
 
サブフォームは同じクエリを使用していますがメインフォーム/サブフォームのサブフォームには
一部しか表示させないようにして計算結果などを出そうとしています。
 
計算する入力(個数や価格)は別のフォームで行い計算された値だけを、
メインフォーム/サブフォームに反映させようと考えましたが、
メインフォーム/サブフォームのサブフォームに明細番号を入力したら、
レコードが作成されますが当然計算されてないのでエラーが出ます。
なので、エラーレコードを削除して、エラーではないサブフォームを
再クエリ化しています。
 
 

投稿日時: 18/05/10 17:22:36
投稿者: nanodia

メインフォーム/サブフォームのサブフォームにあるフォームフッターに
レコード移動のボタンイベントを付けたら一応動きました。
 
親身に答えてくださりありがとうございました。