Microsoft Access Club Access超初心者対象Forum Access初級者対象Forum Access VBA Tips Forum DAO、ADO、SQL Forum

     

リストへもどる

投稿記事の一括表示

タイトルcaseでの比較演算子について
記事No42691
投稿日: 2011/09/12(Mon) 11:09
投稿者TOM
解決済: ON
OS:XP
Access Version:2007

測定値の入力フォームで項目を入力したときに
前回の値から設定された値以下になると
背景を変えて注意を促すようにしたいのですが
演算子が"<="のときは背景が変化せず
演算子が">="のときはうまくいきます
なぜそうなるのかわからず困っています
わかる方がいましたらご指摘お願いします

センシング:テキスト_入力されている値は、数値、Null、−の3つ
Forms!基本情報フォーム!センシングの最後:前回の値が表示されています
sens_警告およびsens_注意:設定値です

Select Case センシング

Case Is <= (Val(Nz(Forms!基本情報フォーム!センシングの最後)) - DLookup("sens_警告", "環境設定マスター", "ID=1"))

Me.心房波高低.BackColor = 17919 'orangered

Case Is <= (Val(Nz(Forms!基本情報フォーム!センシングの最後)) - DLookup("sens_注意", "環境設定マスター", "ID=1"))
Me.心房波高低.BackColor = 55295 'gold

Case "-"
Me.心房波高低.BackColor = 16777215 'white

Case Else
Me.心房波高低.BackColor = 16777215 'white

End Select

End Sub

タイトルRe: caseでの比較演算子について
記事No42692
投稿日: 2011/09/12(Mon) 11:57
投稿者SEP
解決済: ON
> 演算子が"<="のときは背景が変化せず
> 演算子が">="のときはうまくいきます
> なぜそうなるのかわからず困っています

上から順に処理されます

最初に
値 < 9999999999999999
なんてすれば、どうなるか分かりますよね?

タイトルRe: caseでの比較演算子について
記事No42693
投稿日: 2011/09/12(Mon) 16:09
投稿者Hank
解決済: ON
> センシング:テキスト_入力されている値は、数値、Null、−の3つ
Nullを含む式は全てNullを返します。
Null <= 10
Null >= 10
Null = Null
Null >= -500
すべて結果はNullです。
比較式が返すNullはFalseと同等に扱われます。

Select Case Nz(センシング, - 9999)

とでもしてみたらどうなりますか?

タイトルRe^2: caseでの比較演算子について
記事No42701
投稿日: 2011/09/15(Thu) 13:51
投稿者TOM
解決済: ON
> > センシング:テキスト_入力されている値は、数値、Null、−の3つ
> Nullを含む式は全てNullを返します。
> Null <= 10
> Null >= 10
> Null = Null
> Null >= -500
> すべて結果はNullです。
> 比較式が返すNullはFalseと同等に扱われます。
>
> Select Case Nz(センシング, - 9999)
>
> とでもしてみたらどうなりますか?

返事が遅くなり申し訳ございません
出張で2日間Accessから離れたおかげで
頭が冷静になり解決できました

センシングのデータ型がテキストだったために
うまくいかなかったみたいです

Select Case val(nz(センシング))

Case 0
Me.心房波高低.BackColor = 16777215 'white

Case Is <= (Val(Nz(Forms!基本情報フォーム!センシングの最後)) - DLookup("sens_警告", "環境設定マスター", "ID=1"))

Me.心房波高低.BackColor = 17919 'orangered

Case Is <= (Val(Nz(Forms!基本情報フォーム!センシングの最後)) - DLookup("sens_注意", "環境設定マスター", "ID=1"))
Me.心房波高低.BackColor = 55295 'gold

Case Else
Me.心房波高低.BackColor = 16777215 'white

End Select

valとnz関数でNullとーを0に置き換えて
一番上にCase 0をいれることによって
自分の理想どおりの動きをしてくれました

SEPさん、Hankさん
どうもありがとうございました

- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード

ページの先頭へ 前ページへ戻る