解決済み

このような場合は・・・

  • すぐに回答を!
  • 質問No.299624
  • 閲覧数38
  • ありがとう数2
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 37% (36/97)

WINDOWS2000/ACCESE2000
いつもお世話になってます。
例えば、以下の場合だとどのように組んだら良いでしょうか?
もし、A>Bの場合で、1の場合はC+B。2の場合はC+D。
もし、A<Bの場合で、1の場合はE+F。2の場合はE+H。
1つだけだったら、Select Caseを使って出来たのですが・・・
Select Caseを2つ繋いでって出来ないですよね?
アドバイス宜しくお願いします。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.3
レベル9

ベストアンサー率 57% (36/63)

Select CaseステートメントよりもIfステートメントを使った方が分かりやすいのではないでしょうか。

If IsNull(登録年) Then
  If 車検到来区分 = 1 Then
    車検到来年 = 基準年 + 2
  End If
ElseIf IsNull(基準年) Then
  If 車検到来区分 = 1 Then
    車検到来年 = 登録年 + 2
  End If
End If
お礼コメント
renault

お礼率 37% (36/97)

kumagoro-さん、アドバイス有難うございました。
無事、教えて頂いた方法で設定できました。
本当に有難うございました。
今回初めてアクセスをする事になり、毎日が悪戦苦闘です。
また、質問する事があると思いますが、宜しくお願い致します。
有難うございました。
投稿日時 - 2002-06-25 16:10:40
OKWAVE 20th Be MORE ありがとうをカタチに

その他の回答 (全2件)

  • 回答No.1
レベル9

ベストアンサー率 57% (36/63)

CASEのネストはできますよ。

SELECT
CASE
WHEN A > B THEN CASE hoge WHEN 1 THEN C + B WHEN 2 THEN C + D END
WHEN A < B THEN CASE hoge WHEN 1 THEN E + F WHEN 2 THEN E + H END
END
FROM TableName

といった感じです。
補足コメント
renault

お礼率 37% (36/97)

おはようございます。早速アドバイス有難うございます。
教えていただいた通りに自分で組んでみたら構文エラーが出ました。
Select Case WHEN IsNull(登録年) THEN CASE hoge WHEN 車検到来区分=1 THEN
車検到来年=検査基準年+3 WHEN 車検到来区分=2 THEN 車検到来年=検査基準年+1
END
WHEN IsNull(検査基準年) THEN CASE hoge WHEN 車検到来区分=1 THEN
車検到来年=登録年+3 WHEN 車検到来区分=2 THEN 車検到来年=登録年+1
END
FROM 保有車両
Select Caseの前に 車検到来年に2000を足さないといけないので、
車検到来年=車検到来年+2000 と記述してます。これがだめなのでしょうか?
お手数かけますが、再度アドバイス有難うございます。
投稿日時 - 2002-06-25 11:32:50
  • 回答No.2
レベル9

ベストアンサー率 57% (36/63)

すいません。
大きな勘違いをしていました。
SQLとVBAが混ざっていたようです。

renaultさんはこの処理をSQLとVBAのどちらでされたいのでしょうか?
1つだけだったら、Select Caseを使って出来たということは、やっぱりVBAでしょうね。
私が書いたのはSQLでした。しかもSQLServerでした。ので忘れてください。

VBAのSelect Caseステートメントならば以下の様に書いてみてはいかがでしょうか?

Select Case A
  Case Is > B
    Select Case aaa
      Case 1
        bbb = C + B
      Case 2
        bbb = C + D
    End Select
  Case Is < B
    Select Case aaa
      Case 1
        bbb = E + F
      Case 2
        bbb = E + H
    End Select
End Select
補足コメント
renault

お礼率 37% (36/97)

アドバイス有難うございます。
度々、質問します。
例えが、A>BとA<Bでしましたが、登録年と基準年があって、登録年が空の場合で
区分が1の場合は基準年+2。基準年が空の場合で区分が1の場合は登録年+2にしたい場合は、
Select Case 車検到来年
Case Is IF IsNull(登録年)
Select Case aaa
Case 車検到来区分=1
車検到来年=基準年+2
End Select
Case Is IF IsNull(基準年)
Select Case aaa
Case 車検到来区分=1
車検到来年=登録年+2
End Select
で良いのでしょうか?
お手数かけますが、再度アドバイス宜しくお願いします。
投稿日時 - 2002-06-25 13:20:38
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


より良い社会へ。感謝経済プロジェクト始動

ピックアップ

ページ先頭へ