- 締切済み
accessの時間更新方法(フォーム)
access超初心者なので教えてください。 access2002を使用しています。 accessでフォームを作成しました。 フォーム内には、簡単な日付、時間、メモ的なフォーム欄があり、 日付と時間はオートで付与され、テーブル内で規定値に 日付:=Date() 時間:=Now() を設定しています。 上記2つは別々のフォーム欄に分ける必要があるんです。 そして、新規作成ボタンを作り、クリックすることで、 入力したデータはテーブルに保存されます。 ここで質問なんですが、新規作成ボタンをクリックすることで、 今まで入力していたものはテーブルに格納され、新しい日付と時間 がオートで日付と時間のフォーム欄に表示されるのですが、 この表示された日付、時間をより新しい情報に更新するにはどうしたら いいのでしょうか? 分かりづらくてすみません。 例を出します。 日付:2008/05/09 時間:13:55 メモ:テスト 上記を各フォームに入力し、新規作成ボタンを押します。 ↓ 上記情報がテーブルに格納されます。 ↓ 新しい日付と時間が表示され、メモ欄は空白の 新しいフォームが現れます。 日付:2008/05/09 時間:13:56 メモ:(入力待ち状態) この時、新規作成ボタンを再度クリックしても、時間が更新されず、 テーブルにも格納されません。 テーブルに格納されないのはいいことなんですが、時間が更新されない のは困るんです。。。 新規作成ボタンを押すごとに、時間が更新されているようにするにはどうしたら いいのでしょうか? (新規作成ボタン以外に新たに時間更新用のボタンを作ることも対処の視野に入れます)
- みんなの回答 (4)
- 専門家の回答
みんなの回答
#2です。 「新規作成」ボタンという考え方が、すべての考え違いのもとと感じます。 「登録」ボタンという考え方をすればすっきりすると思います。 また、「フォームクリア」というプロシージャを作成し、これを入力前の準備のためのコードを書いておきます。 これを、フォームを開いたときと、登録ボタンを押したときの最後に呼ぶようにしておけばよいのです。
> もし、意味が分からない文章でしたら 意味はわかりますが、失礼ながら、おやりになりたいことは意味がないように思えます。 新規作成ボタンを押した時点で取得した時刻を保存データとしているからです。 そんないつだかわからない意味のない時刻データを保存するより、データ保存時に時刻データを取得して、 それを保存すれば良いことだと申し上げているのです。
データ保存ボタンのプロシージャがテーブルへデータを保存する時点で Now ()関数を使って、現在の日時をテーブルへ保存すれば良いので フォーム上に表示すること自体が無意味なのでは? (日付ぐらいは良いかとは思いますが)
- CHRONOS_0
- ベストアンサー率54% (457/838)
>日付と時間はオートで付与され、テーブル内で規定値に >日付:=Date() >時間:=Now() >を設定しています。 規定値にこう設定してあるのなら >日付:2008/05/09 >時間:13:55 >メモ:テスト >上記を各フォームに入力し、新規作成ボタンを押します。 >↓ >上記情報がテーブルに格納されます。 >↓ >新しい日付と時間が表示され、メモ欄は空白の >新しいフォームが現れます。 >日付:2008/05/09 >時間:13:56 >メモ:(入力待ち状態) こんなことをする必要は全くありません フォームを開けば自動的に日付と時刻が表示され メモを入力したところで表示されているものが入力されます ということで新規作成ボタンというものが無意味ですね メモが更新されるたびに日付時刻を更新したいのであれば 規定値を使わず値の代入を使います 別件ですがNow関数は日付けと時刻を返します ということで >日付:=Date() このフィールドは必要ありません
補足
ご回答ありがとうございます。 説明不足でしたので、補足いたします。 新規作成ボタンは、このボタンを押すことによって、 メモに入力した情報がテーブルに格納され、 新たなタイムスタンプを発行して、 日付、時間の欄に新しい日時が表示されるようになっています。 今回の質問では、 例えば、 11:00にメモをとったとします。 新規作成ボタンを押す→テーブルに格納される→新しいタイムスタンプで 11:05と時刻欄に表示されているとします。 しばらくそのままの状態で、 実際の時間が11:10にメモを入力し、新規作成ボタンを押すと、 11:05でテーブルには保存されます。 これを11:10で保存したいのです。 accessを毎回起動している暇がない時があるので、 accessのフォームは1日中開いたままの状態に しておきたいんです。 このような使い方をした場合、11:05の時刻表示を、 11:10の時刻に更新を行ってからテーブルに保存するように したいんです。(手動ではなく、できるだけワンクリックで更新できるように) 何か方法ありますでしょうか?
補足
ご回答ありがとうございます。 フォーム上に表示させているのは、自分の見た目だけでつけてます(^^; 私の知識が乏しいので、こういう質問しかできませんが、 データを保存する際に、新規作成ボタンをクリックすることで、 テーブルに入力データを反映させるように作っているので、 例えば、11:05に新しいタイムスタンプが発行され、 時刻欄に11:05と表示されますが、 そのままの状態でしばらく席をはずして、戻ってきて、 11:10から新たなメモを入力したとします。 そして新規作成ボタンをクリックすると、11:05でテーブルには 保存されるんです。 これを席に戻ってきて入力を開始した時間でテーブル保存をしたいんです。 (もちろん、時刻欄で時間が更新されたかを確認して) もし、意味が分からない文章でしたらすみません。。。