Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 11 Home : Microsoft 365)
時間による値の分岐の方法
投稿日時: 24/03/31 14:13:41
投稿者: yurappy

お世話になります。
 
いつも助けてもらってありがとうございます。
ネットで見つけても、ヒントすら見つけられないので助けてください。
 
 
行いたいことは、フィールドの値が空欄だった場合に、今の時間が15:00以前だったら今日の日付で15:00以降だったら明日の日付にしたいのです。
 
私が考えた式ですとこんな感じです。
 
IIf([フィールド1] Is Not Null,[フィールド1],IIf(今の時間が15:00前だったら,Date(),Date()+1))
 
 
この 「 今の時間が15:00前だったら 」 の部分をどの様にしたらできるのかわからずに悩んでおります。
 
15:00 はパソコンの時間で考えてます。
 
すみませんが、何か方法をご存知の方がいらしたら教えてください。
 
よろしくお願いいたします。
 
 

回答
投稿日時: 24/03/31 17:29:19
投稿者: hatena
投稿者のウェブサイトに移動

yurappy さんの引用:

行いたいことは、フィールドの値が空欄だった場合に、今の時間が15:00以前だったら今日の日付で15:00以降だったら明日の日付にしたいのです。
 
私が考えた式ですとこんな感じです。
 
IIf([フィールド1] Is Not Null,[フィールド1],IIf(今の時間が15:00前だったら,Date(),Date()+1))

 
VBA上でのコード記述の質問ですか。
それとも、クエリのフィールド欄やコントロールのプロパティでの記述についての質問ですか。
 
提示の式をみるとクエリかコントロールの方ぽいですが、
VBA板なのでVBA上のコードということで下記のような仕様として回答します。
 
フォーム上にフィールド1という日付/時刻型のフィールドと連結したコントロールがあり、
それが空欄だったら、そこに、
今の時間が15:00以前だったら今日の日付、
今の時間が15:00を過ぎていたら明日の日付、
を代入
 
If IsNull(Me.フィールド1) Then
   If TimeValue(Now) <= #15:00# Then
        Me.フィールド1 = Date
   Else
       Me.フィールド1 = Date + 1
   End if
End If

投稿日時: 24/03/31 18:38:47
投稿者: yurappy

hatena様
 
お世話になります。
ご親切にありがとうございます。
 
私が、知識不足で投稿する場所を間違えた様で申し訳ございません。
 
 

引用:
VBA上でのコード記述の質問ですか。
それとも、クエリのフィールド欄やコントロールのプロパティでの記述についての質問ですか。

 
ご指摘の様に、クエリ での動作での質問です。
一般機能なのか、VBAなのか良くわからずに申し訳ございません。
 
また、きちんと書かなくてすみませんでした。
 
 
勉強だと思って、フォームに書いてみたら質問させていただいた通りに動いたのですが、クエリの時間の箇所に
 
引用:
TimeValue(Now) <= #15:00#

 
を参考に次のように書いてみましたが、これでもよろしいのでしょうか。
 
 
IIf([フィールド1] Is Not Null,[フィールド1],IIf(TimeValue(Now) <= #15:00#,Date(),Date()+1))
 
 
試しにクエリを動かしてみたら、エラーにはならなくてパソコンの時刻手動で変更してみたら概ね良さそうでした。
 
 
きちんと基礎の勉強もできておらずに申し訳ございません。
 
よろしくお願いいたします。
 

回答
投稿日時: 24/04/01 00:22:44
投稿者: hatena
投稿者のウェブサイトに移動

それでいいと思います。

投稿日時: 24/04/01 09:54:55
投稿者: yurappy

hatena様
 
お世話になります。
 
ご回答、ありがとうございます。
何回もお手数をおかけして申し訳ございません。
 
たいへん勉強になるアドバイスをいただいてありがとうございました。
私の勉強不足ですみませんでした。
 
 
先ほど、クエリで試したところ思うような動きをしているように見えるので、再度確認をしてご利用させてもらいます。
 
日曜日なのに、教えていただいてとても助かりました。
 
本当にありがとうございました。
また困った時には助けてください。
 
ありがとうございました。
 
 
よろしくお願いいたします。