Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2006 / 2272 ツリー ←次へ | 前へ→

【4293】フォームでの日付入力 たなか 05/1/29(土) 2:10 質問[未読]
【4295】Re:フォームでの日付入力 Gin_II 05/1/29(土) 17:00 回答[未読]
【4296】Re:フォームでの日付入力 たなか 05/1/29(土) 17:47 質問[未読]
【4297】Re:フォームでの日付入力 Gin_II 05/1/29(土) 18:08 回答[未読]
【4298】Re:フォームでの日付入力 たなか 05/1/29(土) 18:29 お礼[未読]

【4293】フォームでの日付入力
質問  たなか  - 05/1/29(土) 2:10 -

引用なし
パスワード
   初めまして。
今まで使用していたDBで一部手直しがあるのですが、方法がうまくいきません
ご教授お願いいたします。

「今までのやり方」(ソースは下記のとおり)
フォームにチェックBOXとテキストBOXはあり、チェックBOXにチェック
を入れると当日の日付が入力されます。
ただしPM5:00を超えてチェックされたものは翌日を入力させます。

[ソース](マクロをVBAに変換したものです)
*cb1=チェックBOX名
 TEXT1=テキストBOX

Private Sub cb1_Click()
On Error GoTo cb1_Click_Err
  If (Forms!一括更新!cb1 = True) Then
    Forms!一括更新![TEXT1] = Date
  End If
   If (Time() >= "17:00:00") Then
   Forms!一括更新![TEXT1] = Date + 1
  End If
   If (Forms!一括更新!cb1 = False) Then
     Forms!一括更新![TEXT1] = Null
  End If
cb1_Click_Exit:
  Exit Sub
cb1_Click_Err:
  MsgBox Error$
  Resume cb1_Click_Exit
End Sub

上記で今までは動作させていたのですが、上記ではチェックBOXにチェックを
入れたとき当然当日か翌日した入力できませんでした。これが正常動作だったの
ですが例外的に過去日を入力する要求があり、フォームのフォームヘッタに
テキストBOXを作りそのテキストBOXに日付が入力されていればその月日を
[TEXT1]に入力し、そのテキストBOXがnull(何も入力されていなければ)今まで
のように当日、PM5:00以降は翌日を入力させたいのですが、うまく出来ません
ご教授願います。

【4295】Re:フォームでの日付入力
回答  Gin_II  - 05/1/29(土) 17:00 -

引用なし
パスワード
   フォームヘッダのテキストボックス:txthd日付
として、

If IsNull(Me!txthd日付) Then
  If Me!ch1 Then
    If Hour(Now()) >= 17 Then
      Me!TEXT1 = DateAdd("d",1,Date())
    Else
      Me!TEXT1 = Date()
    End If
  Else
    Me!TEXT1 = Null
  End If
Else
  Me!TEXT1 = txthd日付
End If

ではどうでしょうか?

【4296】Re:フォームでの日付入力
質問  たなか  - 05/1/29(土) 17:47 -

引用なし
パスワード
   Gin_II さんありがとうございます。
ご教授いただいた下記で行ってみました。
おかげさまで、txthd日付に日付が入力されてれば、その日付
入力がなければ、17時前は当日、17時以降は翌日の月日がチェックBOX
にチェックを入れることにより表示できるようになりました。

それで1つまた教えてください、チェックBOXのチェックを外すと
txthd日付に入力がない場合テキストの日付も消えてくれるのですが
txthd日付に日付が入力されている場合、チェックBOXのチェックを外しても
チェックBOXはoffになりますがテキストの日付は残ったままになってしまいます。
チェックBOXがoffの時日付も消したいのですが・・・
よろしくお願いいたします。

>フォームヘッダのテキストボックス:txthd日付
>として、
>
>If IsNull(Me!txthd日付) Then
>  If Me!ch1 Then
>    If Hour(Now()) >= 17 Then
>      Me!TEXT1 = DateAdd("d",1,Date())
>    Else
>      Me!TEXT1 = Date()
>    End If
>  Else
>    Me!TEXT1 = Null
>  End If
>Else
>  Me!TEXT1 = txthd日付
>End If
>
>ではどうでしょうか?

【4297】Re:フォームでの日付入力
回答  Gin_II  - 05/1/29(土) 18:08 -

引用なし
パスワード
   > txthd日付に日付が入力されている場合、チェックBOXのチェックを外しても
> チェックBOXはoffになりますがテキストの日付は残ったままになってしまいます。

If IsNull(Me!txthd日付) Then
  〜省略〜
Else
  If Me!ch1 Then
    Me!TEXT1 = txthd日付
  Else
    Me!TEXT1 = Null
  End If
End If

のようにしてください。

【4298】Re:フォームでの日付入力
お礼  たなか  - 05/1/29(土) 18:29 -

引用なし
パスワード
   Gin_II さんへ
ありがとうございました。
思いとおりに作成することが出来ました。
お礼申し上げます。
もっと勉強します。

2006 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078295
(SS)C-BOARD v3.8 is Free