最近アクセスを始めましたが、わからないことが多くて皆様のお知恵よろしくお願いします。
現在、フォームにデータ入力やレポート用のクエリ抽出要件用とレポート表示用として、非連結のテキストボックスを多数設置して利用していますが、一度入力した要件は、しばらくは同じ値で作業します。
よって、入力した要件データが次回もそのまま表示されるようにしたいのですが、たとえば日付入力テキストで、VBAのafterupdate で以下の設定をすると、一旦はデザインビューのプロパティの既定値が更新内容に変わっているのですが、終了・再立ち上げを行うと元の既定値に戻ってしまいます。
Private Sub 日付_AfterUpdate()
Me!日付.DefaultValue = "#" & Me!日付 & "#"
End Sub
なお、入力後にフォームのデザイン等を一部変更・または直接プロパティで既定値変更した場合は、「フォームの変更を保存しますか?」の表示がでて、「はい」クリックするとフォームデザインとともに上記更新日付等も既定値が更新され、再立ち上げ時にも更新値が表示されます。
よって、フォームビューからの入力テキストの更新だけでは、見た目こそプロパティの既定値が更新されていますが、実際にはフォームの更新と認識されず、保存動作が行われていないようです。
更新ボタンをクリックしてからの終了や、close acSaveYes 等の設定してみても効果はないです。
フォームビューからの入力だけで、既定値更新の内容が保存できる方法があれば、よろしくお願いします。
No.1ベストアンサー
- 回答日時:
その都度デザインビューに切り替えて、規定値を変更し保存、フォームビューに切り替え・・と
行えば出来るかと思いますが、ちょこまかと変更していると
ファイルの肥大化・破損が心配になってきます。
なので
規定値用のテーブルを作成し
FrmName|FldName|DefValue(文字型にしときます)
フォーム1|Txt1|ABC
フォーム1|Txt2|2014/1/1
フォーム2|Txt1|xyz
(対象となるフォームが一個だけならFrmNameフィールドは不要)
で、
適当なタイミング
テキストボックスの変更時
コマンドボタンを押したとき
フォームを閉じるとき
などに上記テーブルも更新するようにします。
フォームを開くときに
レコードセットを取得するかDlookup関数で
Me!Txt1.DefaultValue = Dlookup("defvalue","規定値テーブル","FrmName=" & me.name & " and fldname='txt1'")
などとセットして行けば目的は達せられると思います。
※質問文中のdefaultValueのセットと併用する形です。
ご参考まで。
ご回答ありがとうございます。
やはりフォームビューからの既定値変更は認識できないということですね。
ご提示いただいた別テーブルの利用方法についてさっそく試してみたいと思います。
また何かありましたら、よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/08 15:45
- Excel(エクセル) エクセルで、特定のセルの内容を更新すると、別の特定セルに 更新日付が自動的に表示させる方法はあります 1 2022/11/14 21:03
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) VBA 複数のブックに同じ列を表示させる方法 2 2022/07/20 23:49
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
YahooのIDがロックされてしまい...
-
Accessで、フォームからフォー...
-
「フォームを作成できませんで...
-
デフォルトでチェックボックス...
-
フォームの高さを数値で指定し...
-
Wordのテキストフォーム書式設...
-
フォームなどに半角カナで入力...
-
アクセス フォームをリクエリ...
-
Accessのフォーム更新方法
-
Accessフォームを開くときに決...
-
アクセスで、スマホサイズのフ...
-
Accessに関する質問です。 クエ...
-
アクセスで、androidのスマホサ...
-
ACCESS クロス集計クエリの抽...
-
アクセス2010 作った記憶のな...
-
Access 2010フォームの全画面表示
-
Excelのユーザーフォーム
-
access vba 開いていないフォー...
-
エクスポートされたエクセルの...
-
Access2003 リンクテーブルを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
YahooのIDがロックされてしまい...
-
Accessで、フォームからフォー...
-
「フォームを作成できませんで...
-
フォームの高さを数値で指定し...
-
デフォルトでチェックボックス...
-
MSワード 年齢を計算表示でき...
-
Accessフォームを開くときに決...
-
アクセス フォームをリクエリ...
-
Accessのフォームで開く時のウ...
-
アクセスで複数列にまたがる同...
-
Excelのデータフォームの設定変更
-
帳票フォームのなかにリストを...
-
ACCESSでオートメーションエラー
-
アクセスのレコードをフォーム...
-
エクスポートされたエクセルの...
-
Access 2010フォームの全画面表示
-
アクセスで同じフォームを違う...
-
Accessに関する質問です。 クエ...
-
Access2003 フォーム入力中に...
-
エクセルで各セルをダブルクリ...
おすすめ情報