Access VBA質問箱 IV

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

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


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

【4779】三つのIF判断条件の組み合わせ sakai 05/3/31(木) 15:23 質問[未読]
【4781】Re:三つのIF判断条件の組み合わせ クロ 05/3/31(木) 16:12 回答[未読]
【4782】Re:三つのIF判断条件の組み合わせ sakai 05/3/31(木) 20:04 質問[未読]
【4783】Re:三つのIF判断条件の組み合わせ クロ 05/4/1(金) 9:04 回答[未読]
【4784】Re:三つのIF判断条件の組み合わせ sakai 05/4/1(金) 10:23 質問[未読]
【4787】Re:三つのIF判断条件の組み合わせ クロ 05/4/1(金) 16:20 回答[未読]
【4793】Re:三つのIF判断条件の組み合わせ sakai 05/4/1(金) 22:02 質問[未読]
【4795】Re:三つのIF判断条件の組み合わせ クロ 05/4/2(土) 9:12 回答[未読]
【4797】Re:三つのIF判断条件の組み合わせ sakai 05/4/2(土) 20:36 お礼[未読]

【4779】三つのIF判断条件の組み合わせ
質問  sakai  - 05/3/31(木) 15:23 -

引用なし
パスワード
   お世話になります。どうしても分からないことがあって、投稿しました。
よろしくお願いします。
実行したいのは、
三つの判断条件があるとします。
同時に成立する場合は、次のステップへ回します。
そうでない場合は、MsgBoxを実行し、そして抜けます。
知っている範囲まで、下記のように書きました。

If FileDateTime("C:\AAA1.xls") < Date Then
    If FileDateTime("C:\AAA2.xls") < Date Then
     If FileDateTime("C:\AAA3.xls") < Date Then
    MsgBox "前日のデータ、受付できません"
    Exit Function           
Else

【4781】Re:三つのIF判断条件の組み合わせ
回答  クロ  - 05/3/31(木) 16:12 -

引用なし
パスワード
   If FileDateTime("D:\圧縮解凍\AAA1.xls") < Date And _
FileDateTime("D:\圧縮解凍\AAA2.xls") < Date And _
FileDateTime("D:\圧縮解凍\AAA3.xls") < Date Then
  MsgBox "処理開始"
Else
  MsgBox "前日のデータ、受付できません"
  Exit Function
End If

こういうことでしょうか?

【4782】Re:三つのIF判断条件の組み合わせ
質問  sakai  - 05/3/31(木) 20:04 -

引用なし
パスワード
   ▼クロ さん:
大変助かりました。
三つの条件の中に一つでも「True」の場合は、MsgBox "処理開始"へ移すために
Andをorに変更するだけ、よろしいですね。

If FileDateTime("D:\圧縮解凍\AAA1.xls") < Date or _
FileDateTime("D:\圧縮解凍\AAA2.xls") < Date or _
FileDateTime("D:\圧縮解凍\AAA3.xls") < Date Then
  MsgBox "処理開始"
Else
  MsgBox "前日のデータ、受付できません"
  Exit Function
End If

【4783】Re:三つのIF判断条件の組み合わせ
回答  クロ  - 05/4/1(金) 9:04 -

引用なし
パスワード
   >三つの条件の中に一つでも「True」の場合は、MsgBox "処理開始"へ移すために
>Andをorに変更するだけ、よろしいですね。

そうですね。
ただ、そのときはAAA1〜AAA3のファイルを処理するものだと思いますが
処理しないもの(3つの中で条件に合わないもの)については別途何らかの
分岐が必要かも?です。

【4784】Re:三つのIF判断条件の組み合わせ
質問  sakai  - 05/4/1(金) 10:23 -

引用なし
パスワード
   クロ さん
 ありがとうございます。
内部処理の仕組みは分かりませんので、ご指導ください。
一応わたしの理解は、
三つの判断条件に、一つの条件でも成立したら、
         MsgBox "処理開始"を実行して、
         End IFに戻って、処理終了となります。
           三つの条件ともに不成立の場合は、Elseに分岐され、
           MsgBox "前日のデータ、受付できません"を実行して、
           Exit FunctionからIF〜EndIF抜けます。
正しい理解でしょうか?

If FileDateTime("D:\圧縮解凍\AAA1.xls") < Date or _
  FileDateTime("D:\圧縮解凍\AAA2.xls") < Date or _
  FileDateTime("D:\圧縮解凍\AAA3.xls") < Date Then
  MsgBox "処理開始"
Else
  MsgBox "前日のデータ、受付できません"
  Exit Function
End If

【4787】Re:三つのIF判断条件の組み合わせ
回答  クロ  - 05/4/1(金) 16:20 -

引用なし
パスワード
   >三つの判断条件に、一つの条件でも成立したら、
> MsgBox "処理開始"を実行して、
> End IFに戻って、処理終了となります。
>三つの条件ともに不成立の場合は、Elseに分岐され、
> MsgBox "前日のデータ、受付できません"を実行して、
> Exit FunctionからIF〜EndIF抜けます。
>正しい理解でしょうか?

でいいんですが...
Exitの後のFunctionはSubで行ってるならSubにして下さい。
但し、この場合これ以降に別の処理がある場合です。
なければExit...は要りません。

もしかしたら条件が変かな?
特にElseのメッセージ...

今日が2005/04/01(Date)だとして

AAA1.xls 作成日 2005/04/01
AAA2.xls 作成日 2005/03/31
AAA3.xls 作成日 2005/04/01

AAA1〜3.xls何れかが今日より小さい(過去)だから処理開始します。

このメッセージは..「前日のデータ、受付できません」どういう意味
ですか?

事例を教えてください。
条件は今日が2005/04/01とした場合、各ファイルの作成日が
いつだったら処理して、いつだったら処理をしたくないのか?

【4793】Re:三つのIF判断条件の組み合わせ
質問  sakai  - 05/4/1(金) 22:02 -

引用なし
パスワード
   ありがとうございます。
説明が悪くて、ごめんなさい。


今日が2005/04/01(Date)だとして
AAA1.xls 作成日 2005/04/01
AAA2.xls 作成日 2005/03/31
AAA3.xls 作成日 2005/04/01
AAA1〜3に過去のファイルが一つあったら、「受け付けません」を表示させ、そして
IF〜Endifから抜きます。
そうでない場合は、elseへ移行し、その後のステップを実行して、終了。

【4795】Re:三つのIF判断条件の組み合わせ
回答  クロ  - 05/4/2(土) 9:12 -

引用なし
パスワード
   If FileDateTime("C:\AAA1.xls") < Date Or _
FileDateTime("C:\AAA2.xls") < Date Or _
FileDateTime("C:\AAA3.xls") < Date Then
  MsgBox "古い日付のデータが含まれていますので受付できません"
  Exit Function 'またはExit Sub
End If
  MsgBox "処理開始"

こうかな?

【4797】Re:三つのIF判断条件の組み合わせ
お礼  sakai  - 05/4/2(土) 20:36 -

引用なし
パスワード
   クロさん
 すべて解決しました、このレッスンを通じて、勉強になりますた。
本当にありがとうございました。

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