• ベストアンサー

このような場合は・・・

WINDOWS2000/ACCESE2000 いつもお世話になってます。 例えば、以下の場合だとどのように組んだら良いでしょうか? もし、A>Bの場合で、1の場合はC+B。2の場合はC+D。 もし、A<Bの場合で、1の場合はE+F。2の場合はE+H。 1つだけだったら、Select Caseを使って出来たのですが・・・ Select Caseを2つ繋いでって出来ないですよね? アドバイス宜しくお願いします。

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

  • ベストアンサー
  • kumagoro-
  • ベストアンサー率57% (36/63)
回答No.3

Select CaseステートメントよりもIfステートメントを使った方が分かりやすいのではないでしょうか。 If IsNull(登録年) Then   If 車検到来区分 = 1 Then     車検到来年 = 基準年 + 2   End If ElseIf IsNull(基準年) Then   If 車検到来区分 = 1 Then     車検到来年 = 登録年 + 2   End If End If

renault
質問者

お礼

kumagoro-さん、アドバイス有難うございました。 無事、教えて頂いた方法で設定できました。 本当に有難うございました。 今回初めてアクセスをする事になり、毎日が悪戦苦闘です。 また、質問する事があると思いますが、宜しくお願い致します。 有難うございました。

その他の回答 (2)

  • kumagoro-
  • ベストアンサー率57% (36/63)
回答No.2

すいません。 大きな勘違いをしていました。 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
質問者

補足

アドバイス有難うございます。 度々、質問します。 例えが、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 で良いのでしょうか? お手数かけますが、再度アドバイス宜しくお願いします。

  • kumagoro-
  • ベストアンサー率57% (36/63)
回答No.1

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
質問者

補足

おはようございます。早速アドバイス有難うございます。 教えていただいた通りに自分で組んでみたら構文エラーが出ました。 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 と記述してます。これがだめなのでしょうか? お手数かけますが、再度アドバイス有難うございます。

関連するQ&A

  • 次のように表される対称行列の名前は?

    以下のように表される対称行列に固有の名前はありますでしょうか? 2次の場合 | a b | | b a | 4次の場合 | a b c d | | b a d c | | c d a b | | d c b a | 8次の場合 | a b c d e f g h | | b a d c f e h g | | c d a b g h e f | | d c b a h g f e | | e f g h a b c d | | f e h g b a d c | | g h e f c d a b | | h g f e d c b a | Bisymmetric matrixの一種だと思うのですが,4次および8次の場合には 2次の区分行列に分割した場合,各区分行列においても対称性が現れています. もしご存知の方がいらっしゃいましたらご教授頂けると助かります.

  • エクセルにて複数セルの並び替え

    こんにちは、エクセルについて教えてください。列はA~Hまで、行は1~200行ほどに値が入っています。 例えばValueが以下のようだとします。 A1 B1 C1 D1 E1 F1 G1 H1 A2 B2 C2 D2 E2 F2 G2 H2 ... これらのValueを、別のSheetに以下のように並び替えたいのですが、 A1 B1 C1 D1 E1 F1 G1 H1 A2 B2 C2 D2 E2 F2 G2 H2 A3 B3 ...と、これがA200~H200の行分まで。なのでPaste後は800行になります。どうにかマクロか何かで簡単に 出来ないかと思い、どなたかご教授いただければと思います、よろしくお願いします!

  • ツリー情報のデータをSQLで取得したい

    SQLServer 2008 です。 以下のツリーデータの場合に A ┬C │├D ┬H ││ ├I ││ └J │└E B ┬F ┬I  │ └L  └G 次のようなデータを登録しています。 ┌──┬──┬──┐ │OYA │KO │Data│ ├──┼──┼──┤ │A │C  │"C" │ ├──┼──┼──┤ │A  │D  │"D" │ ├──┼──┼──┤ │A  │E  │"E" │ ├──┼──┼──┤ │B  │F  │"F" │ ├──┼──┼──┤ │B  │G  │"G" │ ├──┼──┼──┤ │D  │H  │"H" │ ├──┼──┼──┤ │D  │I  │"I" │ ├──┼──┼──┤ │D  │J  │"J" │ ├──┼──┼──┤ │F  │I  │"I" │ ├──┼──┼──┤ │F  │L  │"L" │ └──┴──┴──┘ 引数OYA="A"でSQLを実行した場合に 以下のような この引数を含むそれ以下のツリーに関する データを取得する方法を教えてください。 ┌──┬──┬──┐ │OYA │KO │Data│ ├──┼──┼──┤ │A │C  │"C" │ ├──┼──┼──┤ │A  │D  │"D" │ ├──┼──┼──┤ │A  │E  │"E" │ ├──┼──┼──┤ │D  │H  │"H" │ ├──┼──┼──┤ │D  │I  │"I" │ ├──┼──┼──┤ │D  │J  │"J" │ └──┴──┴──┘

  • LARGEで同じ値の時の順位

    いつもお世話になります。 WINDOWS7 EXCELL2010です。 添付図で説明しますと、 順位(F列)が 3位と4位の E3(2.000) E4(2,000)が偶然に同一金額の時 会社名(B)も同一になる数式です。 この同一の金額の時、 H列で言うと 「A F B C D」もしくは「A F C B D」 とするには何かいい方法ってないでしょうか。 是非ともご指導を仰ぎたいです。 数式は次のようでご参考に F1~F5 はただの数値 G1 =LARGE($E$2:$E$11,F2) H2 =INDEX($A$2:$A11,MATCH(MAX($E$2:$E$11),$E$2:$E$11,0))

  • 勤務時間の計算(定時間内、残業の割り振り)について

    他の質問を確認しましたが、当てはまるものが見つかりませんでした。すみませんが教えてください。 勤務時間の計算で、定時間内分、時間外分の割り振り方を教えてください。 定時間内勤務は8:30~17:30(休憩通常1H、通常8時間勤務)です。 8:30~17:30は定時間、それ以外は時間外とします。 割り振りは1日ごとに行い、範囲は0:00~24:00とします。 入力は下のようにします。 A1:開始時間 B1:終了時間 C1:定時間内休憩 D1:時間外休憩 E1:定時間内 F1:時間外 G1:休日 A1、B1は[hh]:mmで入力(15分単位)。C1~F1は0.00(H)を0.25(15分単位)単位で入力または表示します。 たとえば、A1:7:30、B1:22:30、C1:1.0、D1:0.5のとき、E1:8(H)、F1:5.5(H)のように、E1とF1を自動で計算させたいのです。 G1は休日フラグとし、0なら平日で時間内がある、1なら全て時間外とします。 勤務は不規則で以下のようなケースもあります。 ●定時間にかからないケース(1)↓ A1=1:00、B1=8:00、C1=0、D1=0.75、G1=0のときE1=0、F1=6.25 ●定時間にかからないケース(2)↓ A1=17:30、B1=23:30、C1=0、D1=0、G1=0のときE1=0、F1=6 ●定時間にかかるケース(1)↓ A1=5:00、B1=15:15、C1=0.75、D1=0、G1=0のときE1=6、F1=3.5 ●定時間にかかるケース(2)↓ A1=11:00、B1=24:00、C1=1.0、D1=0.5、G1=0のときE1=5.5、F1=6 ●定時間にかかるケース(3)↓(極端な例) A1=0:00、B1=24:00、C1=1、D1=2、G1=0のときE1=8、F1=13 ●休日のとき A1=6:30、B1=18:30、C1=0、D1=1、G1=1のときE1=0、F1=11 ・・・のようにE1、F1を求めたいのです。 複雑な式になるかと思いますが、よろしくお願いいたします。

  • この場合の適切な対応は?

    以下のケースの適切な対応を教えて頂けないでしょうか? A(夫)とB(妻)にはC、D、Eの3人の子供がいます。Cは結婚してAとBと同居しています。他の子供(D、E)は結婚して別に暮らしています。Cの妻Fは、AとBと折り合いが悪く、Cには3人子供(G、H、I)がいます。Cは会社経営をしているのですが、バブルの時失敗したこと、また最近、心臓の手術をしたこともあり、妻・子供と上手く行っていません。収入が不十分だという金銭問題があると思います。 夫婦喧嘩、親子喧嘩、嫁姑喧嘩の結果、CとFは同じ屋根の下で暮らしていますが、食事・洗濯など全く別々の生活をしています。すなわち、CはBと一緒に、またFはGHIと一緒に食事をするという家庭内別居の状況です。数年前にAは死亡しましたが、トラブルを回避するためAの財産の相続手続きは一切していません。 現在、Bが心不全などの病気で入院しています。これまでの色々なの経緯から、F、G、H、Iは一切病院に見舞いに行きません。Bが面倒を見なくていいと言ったというのが彼らの主張です。そこで、遠く離れたD、Eが時々病院に見舞いに行くため帰ってきます。そうすると、Fの機嫌が極端に悪くなります。またFは子供(GHI)を集めます。 先日、D、Eが病院に見舞いに行くため実家に泊まった時に、「この家はだれのものか?」というG、H、Iの殴り込みのような言動がありました。背後でFが指図しているようです。またBの洗濯のためD、Eが新しく購入した洗濯機の蹴られた後が凹んでしまいました。嫌がらせが言葉から行動に移ってきました。G、H、Iは30歳前後の立派な成人なので、なぜそのような行動をするのか理解できません。一般的には分別のある年代の社会人だと考えています。これまでにD、EとF、G、H、Iとの間でトラブルはありません。 このような状況の場合、D、EがF、G、H、I(実質的にはFかも知れません)に取るべき適切な対応とは、どのようなものがあるでしょうか。今後、色々な嫌がらせが出てくるかと思います。その場合、警察に被害届けを出して受理してくれるでしょうか。背景の一つには、Fの子供Gが結婚したので同居したい希望があるようです。しかし、家族内の人間関係が悪化しているので、彼らが自由に使えると考えていた家が使えません。その不満が原因の一つと想像します。AとBの土地・家は、実質的には現在ではB、C、D、Eの共有物になっています。感情的な反応をする人に法律論で話しても無駄なように思います。法的な手続きをする前にトラブルをできるだけ回避するために、何か良い知恵をお借りできないかと考えています。ご教授、よろしくお願い致します。

  • エクセル:複数セルからの参照

    お世話になります。 A,B,C列にデータが入っています。 D,E,F列に参照のためのデータがあります。 A,B,C列はそれぞれD,E,F列に対応しています。 A,B,C列と同じ並びのデータが入っている行をD,E,F列から探し、その隣のG列の値をH列に返す。 D,E,F列の並びが重複する行はありません。 A,D列は場所の名前、B,C,E,F列には数字が入っている。 例) A1に事務室 B1に20 C1に3 が入っているとする。 D/E/F列が 事務室/20/3 の並びになっているのが10行目の場合、H1にG10のセルの値を返す。 この場合、H列にはどんな計算式を入れておけばよいのでしょうか? A,B,C列と同じ並びのデータがD,E,F列で見つからない場合は空白をH列に返す。 ちなみにD/E/F列が 事務室/20/3 の並びになっている行は10行目しかないです。 よろしくお願いします。

  • セレクトボックスの組み合わせによって結果をかえたい

    ただ今見積もり計算フォームを作っているところで、大変困っています。どなたか助けていただけせんか。 二つのセレクトボックスを選択する事によって、テキストエリアに数字が出るようにしたいです。 ただの足し算・掛け算なら計算が出来るのですが、ifや配列を使用すると上手く出来なくて詰まっております。 概要 セレクトボックス1の内容:A,B,C セレクトボックス2の内容:D,E,F,G 見積もり結果 AとDの場合=950 AとEの場合=1400 AとFの場合=1850 AとGの場合=2500 BとDの場合=1200 BとEの場合=1850 BとFの場合=2400 BとGの場合=2800 CとDの場合=2300 CとEの場合=2500 CとFの場合=2800 CとGの場合=3200 よろしくお願いします!

  • Excel:縦横入れ替えの応用

    Excelでの質問です。 WinXPでExcel2003を使用しています。 データは以下のように並んでいます。    A B 1) Aさん 2) Bさん 3) Cさん 4) 5) Dさん 6) Eさん 7) 8) Fさん 9) Gさん 10) Hさん 11) Iさん このデータを↓のように並び替えたいのですが・・・    A B C D 1) Aさん Bさん Cさん 2) 3) 4) 5) Dさん Eさん 6) 7) 8) Fさん Gさん Hさん Iさん 9) どうにもこうにもうまくいかないので教えてください。 既出だったらすみません。 よろしくお願いします。

  • Excelでの文字列編集(再質問です)

    Excel2003での再質問です。 今、A列~E列に以下の文字が入っています。 A  B  C  D  E 1あ い う え お  2あ   う 上記の内容を「・」で区切りを入れて、F列に結合させたいのですが  F 1あ・い・う・え・お 2あ・う この質問に対しては、以下のご回答をいただき、解決することが出来ました。 =SUBSTITUTE(TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1&B1&C1&D1&E1,A1,A1&" "),B1,B1&" "),C1,C1&" "),D1,D1&" "))," ","・") このたび、3列増やし、A~Hまでの計算式を以下で行ったところ、 =SUBSTITUTE(TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1&B1&C1&D1&E1&F1&G1&H1,A1,A1&" "),B1,B1&" "),C1,C1&" "),D1,D1&" "),E1,E1&" "),F1,F1&" "),G1,G1&" "))," ","・") 計算式がエラーとなります。ご教示いただけますでしょうか? よろしくお願いします。