ちょっとだけ苦労した。
次回もきっと使うことがあるだろうから、メモメモ。
- 現在の値を変数に入れておく(これをしておかないと、次の処理でデザインビューに切り替わるために入力した値も消える)。
- フォームをデザインモードにする。
- 既定値をセットする(フォーム名はme.nameを使いたかったがデザインモードだと参照できないためにエラーになる)
Private Sub cmd閉じる_Click() Dim dateTyumon, dateNyukin, dateHagaki As Variant datebval = Forms("期間指定メール送信").txt注文日経過.Value dateNyukin = Forms("期間指定メール送信").txt入金日経過.Value dateHagaki = Forms("期間指定メール送信").txtHagaki1経過日.Value DoCmd.OpenForm Me.name, acDesign '一旦デザインモードにしないと既定値は変更できない Forms("期間指定メール送信").txt注文日経過.DefaultValue = "#" & datebval & "#" '日付形式で保存しないと日時が不正になる Forms("期間指定メール送信").txt入金日経過.DefaultValue = "'" & dateNyukin & "'" Forms("期間指定メール送信").txtHagaki1経過日.DefaultValue = "'" & dateHagaki & "'" DoCmd.Close acForm, "期間指定メール送信", acSaveYes End Sub
追記2018/04/12(木) もう一つのやり方・・・
Private Sub cmd閉じる_Click() DoCmd.SetWarnings False Dim r r = Me.txt注文日経過 DoCmd.Close DoCmd.OpenForm "期間指定メール送信", acDesign Forms("期間指定メール送信").Controls("txt注文日経過").DefaultValue = "'" & r & "'" DoCmd.Close DoCmd.SetWarnings True End Sub