Microsoft Access 掲示板

単票フォームの表示を「次へ」「前へ」

5 コメント
views
4 フォロー

大変お世話になっております。
現在、帳票「F案件」について、単票「F案件詳細」として1件ずつ詳細画面に飛べるようにしています。
そこで、贅沢な願望かもしれませんが、単票「F案件詳細」に切り替えた際
「F案件」の表示順で、「前」「次」といったボタンで画面を切り替えることはできませんでしょうか。
ちなみに「F案件」の並び順は、2個のボタンを配置しており、順番を並び替えることができるようにしています。
厚かましい質問ばかりで恐れ入ります。初心者にはハードルが高いでしょうか…

cerophan
作成: 2020/06/26 (金) 14:39:53
最終更新: 2020/06/26 (金) 14:40:18
通報 ...
1
hiroton 2020/06/26 (金) 16:57:40 85dae@f966d

1.帳票と単票で同じレコードを使う
2.単票を開いたときに帳票と同じ並び替えを適用する
3.単票を開いたときに帳票のキーを使って検索しレコード移動する
4.「前」「次」は単純にレコードの移動にする

とすれば楽に実装できると思いますよ

3
cerophan 2020/06/29 (月) 12:31:08 0029a@1c915 >> 1

ご回答ありがとうございます!参考にさせていただきます。

2

「F案件」と「F案件詳細」のレコードソースは同じテーブルですか。
同じという前提が回答します。

あと、全角英数字を名前に使用するとトラブルの元なので、半角に修正しておくことを推奨します。
「F案件」、「F案件詳細」とFは半角として回答します。

「F_案件」フォーム上にコマンドボタン「cmd案件詳細」があり、そのクリックで「F案件詳細」を開くとします。
このcmd案件詳細のクリック時のイベントプロシージャを下記のように記述します。

Private Sub cmd案件詳細_Click()
    DoCmd.OpenForm "F案件詳細"
    Set Forms!F案件詳細.Recordset = Me.Recordset
End Sub

これで、「F案件」と「F案件詳細」は同じレコードセットを共有することになりますので、並び順は同じなりレコード移動も完全同期します。片方のフォームでレコード移動するともう一方のレコードも追随して同じなります。

レコード移動のボタンに関しては、コントロールウィザードをオンにしておいてコマンドボタンは配置すると、「レコードの移動」で「前のレコードに移動」「次のレコードに移動」をそれぞれ選択すると自動で作成できます。

あと、フィルターや並べ替えを変更すると、レコードセットの共有がレセットされますので、並べ替えを変更したあとにもレコードセット共有処理を実行するようにします。

例えば下記のような感じです。

Private Sub cmd降順_Click()
    Me.OrderBy = "フィールド名 DESC"
    Me.OrderByOn = True
    Set Forms!F_社員詳細.Recordset = Me.Recordset
End Sub
4
cerophan 2020/06/29 (月) 13:10:45 0029a@1c915

望み通りのものを作成することができました!コードについても勉強になりました。とても助かりました。ありがとうございました。

5
cerophan 2020/06/29 (月) 13:20:21 0029a@1c915

>Private Sub cmd降順_Click()

すみません、このコードについては記述しなくても望み通りの動きをしてくれたのですが、「
フィルターや並べ替えを変更すると、レコードセットの共有がレセットされます」とはどういうタイミングになりますでしょうか。