hiroton
2020/10/21 (水) 10:17:34
989d9@f966d
次月にTODOを持ち越した際、別のTODOが追い越す可能性はないため、年月を変更する際はリセット(リセットボタンを押す)してから変更する予定です。
「年月を変更する際は~変更する」だと、それ以外の場合は変更したくないということですよね?データはどこかに記録しておかないと消えてしまいます。データの記録が必要ならやはりテーブルを持つべきでしょう
システム上で1つだけあればいいデータを保持したいのならたとえば「TsystemProperty」というテーブルを作って
name(テキスト型・主キー)
num(数値型)
name | num |
---|---|
月TODO開始年 | 2020 |
月TODO開始月 | 10 |
とすれば、フォーム上からなら
=DLookup("num","TsystemProperty","name='月TODO開始年'")
=DLookup("num","TsystemProperty","name='月TODO開始月'")
の形で参照することができます。
非連結のコントロールで読み込み、変更もしたいならVBAでフォームの読み込み時にデータの読み込み、各コントロールの更新後処理でテーブルのデータ更新を行えば実現できます
Private Sub Form_Load()
Me!年 = DLookup("num", "TsystemProperty", "name='月TODO開始年'")
Me!月 = DLookup("num", "TsystemProperty", "name='月TODO開始月'")
End Sub
Private Sub 年_AfterUpdate()
CurrentDb.Execute "UPDATE TsystemProperty SET num = " & Nz(Me!年,"NULL") & " WHERE name = '月TODO開始年'"
End Sub
Private Sub 月_AfterUpdate()
CurrentDb.Execute "UPDATE TsystemProperty SET num = " & Nz(Me!月,"NULL") & " WHERE name = '月TODO開始月'"
End Sub
通報 ...