Microsoft Access 掲示板

[登録時]2グループ組合せの自動採番 /管理番号連番自動入力 / 2

6 コメント
views
4 フォロー
2
hiroton 2021/01/29 (金) 17:46:06 修正 7ce18@f966d

3.(1.2.)が実現できた場合

いくつか方法がありますが、基本は

kaikae処理

If 新規登録処理 Then
    施設ID = ほにゃらら
End If

という作りにすることです。
このフラグは、クエリ検索フォームでボタンのどちらを押したかで切り替わるものなので、例えば(良いサンプルではありません

クエリ検索フォーム上に、「新規登録モード」チェックボックスを配置
新規登録ボタン

Me!新規登録モード = True
Docmd.OpenForm "クエリ検索フォーム"

詳細/修正ボタン

Me!新規登録モード = False
Docmd.OpenForm "クエリ検索フォーム"

kaikae処理

If Forms!クエリ検索フォーム!新規登録モード Then
    施設ID = ほにゃらら
End If

のように作ると期待する動作ができます。クエリ検索フォーム側で処理することなのでもっと具体的な質問であれば各ボタンを押したときのコードを提示するようにしてください(質問自体新しく立て直したほうがいいかもしれません)

もう一度言いますが、この作りは良いものではありません

・修正モードの際は、フォーム1で選択した「施設ID」に紐付いた値が表示さる

こういう処理ができているようなので、登録修正用フォーム側に「新規登録モード」チェックボックスを置いて設定を変えるような形にすればいいでしょう

通報 ...
  • 4

    hiroton様
    ご丁寧に模範例まで教えて頂きありがとうございます。

    チェックボックスを使ったことがないド素人なのですが、
    チェックボックスON/OFF(True/false)で新規登録モードと切り替えみたいなことができるんですね。
    読んだ参考書では、新規登録モード(Touroku)と修正モード(kakikae)、同じフォームで処理出来るような仕様になっていていて、ただし修正モード(kakikae)では主キーのような管理番号は書き換え対象から外してあったりしたので、今回のようなことで困っていました。

    色々試してみて、また新たな質問挙げさせてもらうかもしれません。
    いつも本当にありがとうございます。

    5
    hiroton 2021/02/01 (月) 13:11:35 b3a2d@f966d >> 4

    プログラミングのテクニックというやつですね
    「新規か修正」、2つの状態を判断できればいいので「ONかOFF」2つの状態を持てるチェックボックスで代用するという流れです。IF文との相性がいい(コードが簡素)になるのもポイントです

    その代わり、新規登録モード = Falseのとき、何モードなの?というのはコードを読んでも分かりにくいという面はあります


    テキストボックスで実装してもいいですし、3つの状態を判断しなければならないとかだとチェックボックスだと厳しいなんてこともあります

    クエリ検索フォーム
    [モード]テキストボックスを配置

    新規登録用
    Me!モード = "Touroku"
    Docmd.OpenForm "登録修正用フォーム"
    
    修正用
    Me!モード = "kakikae"
    Docmd.OpenForm "登録修正用フォーム"
    
    閲覧用
    Me!モード = "etsuran"
    Docmd.OpenForm "登録修正用フォーム"
    

    登録修正用フォーム

    Select Case Forms!クエリ検索フォーム!モード
    Case "Touroku"
        施設ID = ほにゃらら
    Case "kakikae"
        '修正用処理
    Case "etsuran"
        '閲覧用処理(書き換え自体を禁止するとか)
    Case Else
        MsgBox "モード指定が不正です"
    End Select
    

    先の回答の通りこのコード自体はあまり良いものではないですが、考え方としてはこういう流れになります

    テキスト(文字)を使うとコードだけを見ても何をやっているのが分かりやすいというメリットもあります(Case "etsuran"の中で施設ID = ほにゃららとかあったら「おかしくない?」ってなるとか)

    6

    3つの状態を判断する方法もあるんですね。
    ご丁寧にサンプルコード本当にありがとうございます。
    チェックボックスとともに勉強、テストしてみます。