Microsoft Access 掲示板

どんぐりずさんへ回答(タブ表示でレコード移動)

3 コメント
views
4 フォロー

元の質問と離れてきているのでトピックを分離して回答します。
質問元→クエリに、あるテーブルの該当する若い番号から4つ入れたい。>> 1

概要
フォームの中にサブフォームを作り、それを単票表示にして、その単票データをタブで切り替えるように見せることはできますでしょうか?

回答
新たに作るサブフォームを[部署データ]とします
タブコントロール[所属部署タブ]を設置します
[所属部署タブ]にページコントロールを[ページ0]~[ページ3]まで設置します

Private Sub Form_Current()
    Const max部署 = 4
    Dim cnt部署 As Long
    Dim i As Long

    cnt部署 = Me!部署データ.Form.Recordset.RecordCount
    cnt部署 = IIf(cnt部署 > max部署, max部署, cnt部署)

    me!所属部署タブ = 0

    For i = 1 To cnt部署 - 1
        Me("ページ" & i).Visible = True
    Next
    
    For i = cnt部署 To max部署 - 1
        Me("ページ" & i).Visible = False
    Next
End Sub

Private Sub 所属部署タブ_Change()
    Me!部署データ.Form.Recordset.Move 所属部署タブ - (Me!部署データ.Form.CurrentRecord - 1)
End Sub

新たな問題
プロパティで「移動ボタン」を表示するときちんと2つ目の商品タブが表示されますが、表示しないを選択すると1つ目のタブしか表示されません。

こちらの「F_メンバー」を削除しようとすると
以下エラーが起きて削除できません。
実行時エラー 2101
プロパティの設定値として指定した値が正しくありません。

デバッグで指定される色が付くコードの部分は
me!所属部署タブ = 0

hiroton
作成: 2021/02/17 (水) 15:59:33
通報 ...
1
hiroton 2021/02/17 (水) 16:01:07 130d7@f966d

その他の追加分

追加で質問ですが、現在登録済みだった所属部署は表示されるのですが、新規で所属部署を登録する画面の作成方法がわからず…

回答

Private Sub 所属部署タブ_Change()
    If Me!所属部署タブ = 4 Then
        Me!部署データ.Form.Recordset.AddNew
    Else
        If Me!部署データ.Form.NewRecord Then Me!部署データ.Form.Recordset.MoveFirst
        Me!部署データ.Form.Recordset.Move 所属部署タブ - (Me!部署データ.Form.CurrentRecord - 1)
    End If
End Sub

こっちは発生している問題が解決したら煮詰めるということで

2
hiroton 2021/02/17 (水) 16:03:21 130d7@f966d

こちらの「F_メンバー」を削除しようとすると

「F_メンバー」で表示しているレコードを削除しようとすると、ですよね?
やはり、こちらでは再現しませんでした(エラーメッセージが出ることなくデータを削除できました)

「移動ボタン」の件もですが、ちょっと想定できない動作をしているので、詳しく状況を合わせる必要がありそうです

試してほしいことですが、新規にフォームを作成して、この機能だけのフォーム・サブフォームにしたら同じ問題が発生しますか?

3
どんぐりず 2021/02/17 (水) 21:33:58 0029a@1c915

色々とご検討いただいており、恐縮です。本当にありがとうございます。
ちょっと時間を見つけて試してみます。
お待ちください。