• ベストアンサー

Access ○or△文の書き方

2003です。 月のコントロールを作りました。 Me.月 = Year(Now) としています。 そこから、10月か11月か12月と、その他を分けたいです。 If Me.月 = 10 Or 11 Or 12 Then 1番 else 2番 end if としてみました。 実行してみたら、今4月なので、 2番を通ってくれると思いきや、 何故か1番を通っていました。 If Me.月 = 10 Then としてみたら、ちゃんと2番を通りました。 Case 10 to 12   1番 Case else   2番 とした場合も、2番を通ってくれました。 現在、この方法で、応急処置しています。 orを入れると1番を通ってしまうように見えるのですが、 何故なのでしょうか。

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

  • ベストアンサー
回答No.4

記述ミスった 【正】 'b = 4のとき b = 4 'ちなみにすべてに=を付ける場合 If (((b = 10) Or (b= 11)) Or (B=12)) Then Msgbox("真") Else ' (( 0 Or 0 ) Or 0) ' = (0 Or 0 ) '= 0 '= false Msgbox("偽") End If

-Jelly-
質問者

お礼

ご丁寧にどうもありがとうございました。 >a = (x < 10) '当方環境だとaに-1が代入された 同じく-1でした。 何か不思議ですよねぇ。 カッコもよく分からず今まで 算数の計算以外では使ったことなかったです。 関係ないんですけどhogeって何なんでしょうね(笑 自分のまわりにはhoge派はあんまりいないですけど… aaaaとかiとかixとかが多いんですけど、なんか面白いですね

その他の回答 (3)

回答No.3

Option Explicit Sub hoge() Dim a As Integer Dim x As Integer Dim b As Integer '0はfalse If 0 Then MsgBox ("0はtrueです") Else MsgBox ("0はfalseです") End If '0以外はtrue If 1 Then MsgBox ("1はtrueです") Else MsgBox ("1はfalseです") End If If -4 Then MsgBox ("-4はtrueです") Else MsgBox ("-4はfalseです") End If x = 5 a = (x < 10) '当方環境だとaに-1が代入された If x < 10 Then MsgBox ("x<10は" & CStr(a)) 'trueなので実行される End If If 10 Or 12 Then ' http://ja.wikipedia.org/wiki/%E3%83%93%E3%83%83%E3%83%88%E6%BC%94%E7%AE%97 '10 = 1010 '12 = 1100 '14 = 1110 → 0以外だからtrue MsgBox ("10 or 12は" & CStr(10 Or 12)) End If '実際のコードではMe.月だが、書くの面倒くさいのでbで勘弁して 'b = 4のとき If (((b = 10) Or 11) Or 12) Then 'http://msdn2.microsoft.com/ja-jp/library/fw84t893(VS.80).aspx '(b = 10) = 0 '((b = 10) Or 11) = (0 or 11) = 11 '(((b = 10) Or 11) Or 12) = 11 or 12 = 15→0以外なのでTrue MsgBox (CStr(((b = 10) Or 11) Or 12)) ' 15 End If End Sub

回答No.2

If Me.月 = 10 Or Me.月 = 11 Or Me.月 = 12 Then としなければいけません。

-Jelly-
質問者

お礼

省略したらダメなんですね。 どうもありがとうございました orを使うと分がおかしくなるなんて普通じゃ考えられないというか 仕様として成り立たないですもんね。

  • venzou
  • ベストアンサー率71% (311/435)
回答No.1

>Me.月 = Year(Now) Me.月 = Month(Now) ですよね。 >If Me.月 = 10 Or 11 Or 12 Then If Me.月 = 10 Or Me.月 = 11 Or Me.月 = 12 Then それぞれに Me.月 = が必要ですよ。

-Jelly-
質問者

お礼

>Me.月 = Month(Now) その通りです。 気付いたらYearと打ってました。すいません。 省略したらダメなんですね。 どうもありがとうございました

関連するQ&A