使いやすいように設計された Microsoft リレーショナル データベース管理システムのファミリ。
MukkuMukuです。
テーブル上のフィールドの既定値 / Default Value プロパティでは、テーブル / フィールド の参照はできません。ダイアログを見た通りで、[式の要素] で テーブル および フィールド が選択できませんよね。同時に定義域関数も使用できないということです。
なので、このような場合で演算結果を既定値っぽく使用する場合、フォーム上のコントロールの既定値 / Default Value プロパティで指定するか、フォームのイベント Form.BeforeUpdate イベント (Access)でフィールドの値を設定することがよいかと思います。また、値が重複しない設定になっているので、Form.BeforeInsert イベント (Access) も可だと考えられますが、いずれの場合であっても複数ユーザの操作によって発生する事象について確認されればよいかと思います。
サンプルなのでアレンジしてください。
キャプチャが読みにくいので、式 / 値を 補完しときます。
"O-" & Format(Date(),"yymm")
Nz(DMax("業務管理番号","業務テーブル","業務管理番号 like '" & [LocalVars]![O_yymm] & "*'"),[LocalVars]![O_yymm] & "0000")
=[LocalVars]![O_yymm] & Format(Right([LocalVars]![max_serial],4)+1,"0000")
今のところ大きな影響はないでしょうけど、主キーに自然キーを使用しないほうがよいかもです。"業務管理番号"ってビジネスルールの変更に影響を受けやすい性質がありそうなので。