MS Access

Accessのフォームでテキストボックスに入れた値を次回オープン時の既定値として自身に保存するには

投稿日:2013年4月10日 更新日:

ちょっとだけ苦労した。

次回もきっと使うことがあるだろうから、メモメモ。

  1. 現在の値を変数に入れておく(これをしておかないと、次の処理でデザインビューに切り替わるために入力した値も消える)。
  2. フォームをデザインモードにする。
  3. 既定値をセットする(フォーム名はme.nameを使いたかったがデザインモードだと参照できないためにエラーになる)

[sourcecode]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[/sourcecode]

追記2018/04/12(木) もう一つのやり方・・・
[sourcecode]
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

[/sourcecode]

-MS Access

執筆者:

関連記事

no image

テーブル/クエリのデータシートビューでイベントを処理する方法

参考:テーブル/クエリのデータシートビューでイベントを処理する方法 | YU-TANG’s MS-Access Discovery え、そうなの? クエリを閉じた際のイベントをセットできる …

Access「実行時エラー3061 パラメータが少なすぎます。2を指定してください」で意外な決着

クロス集計クエリをVBAで読むときで、かつパラメータクエリを使う場合には、クエリのパラメータパネルで、別途、パラメータを指定しなくてはならない(VBAで使わないなら不要) 本日のトラブルは、その後、W …

no image

AccessのDoCmd.OpenForm acPreviewでデータが表示されない

なぜか、フォームに新規データを入力し、印刷プレビュー(DoCmd.OpenForm “見積請求書F”, acPreview)した際に、それまで入力したデータが消えたようになる。 …

no image

Access2013のWeb機能について(FileMakerと比較して)メモ

ここ数日、MS-Access 2013のWeb機能を勉強していたので、そのメモ。 ■フォームの書式 選択肢があまりに少ない。FMのようにデザインやテーマが用意されていない。 リスト表示のサイズが変更で …

no image

access覚書

複雑な親子フォームを作る際、テーブル設定でインデックスを2つのフィールドとも「はい (重複あり)」にすることで、親のコンボボックスに子が連動するようになった。 Excelでコピーした表データをテーブル …