No.3ベストアンサー
- 回答日時:
A=50 F=100として
X=真 Y=偽 Z=偽のとき
Z=F-A
Zの値は50
この場合、
X=-1
Y=0
Z=0
です。
Z=100 - 50
Z=50
と計算させるには
Z=100+50 ×-1
ということになります。
Z=F+A* X は、X=真 であれば Z=F+A*-1 ということです。
つまり、X=真であれば、目的の演算が行われます。
が、X=偽の場合を+演算するには Z=F+A* X は Z= 100+50×0 となり不具合が発生します。
先の回答と同じやり方であれば、
Z=F+A* (X + (Y + Z) ×-1)
X=-1、Y=0、Z=0 を代入すると、
Z=100+50×(-1+(0+0)×-1)=100-50
X=0、Y=-1、Z=0 を代入すると、
Z=100+50×(0+(-1+0)×-1)=100+50
X=0、Y=0、Z=-1 を代入すると、
Z=100+50×(0+(0+-1)×-1)=100+50
と不具合は解消されます。
なるほど論理積でしたでしょうか?
それぞれのフラグで処理すれば解決しそうです。
さらにチャレンジしたいと思います。
ありがとうございます。
No.2
- 回答日時:
計算式は、幾つかの書き方があります。
(1)IIF を利用する。
(2)真=-1、偽=0 を利用する。
次は、更新クエリを SQLビューで表示しています。
UPDATE テーブル1 SET Z = A+B*(D+E*-1);
これでも、次のようにZは更新されます。
ID A B Z D E
1 1 2 -1 Yes No
2 1 2 3 No Yes
*IIF関数より、随分とスッキリ書けます。
チクッと上級編です!
この回答への補足
s_husky 様
早速実行してみましたら、チェックマークが入っている項目すべて同じ結果の数値でした。
計算式を理解していないためなのですが
改めてもうすこしサンプルデーターを追加します。
X:F-A Y:F-B Z:F-Cの式が定義されていて、Xにチェックマークされていたら、Zの値がF-Aの計算式で計算されます。
チェックマークの位置で、計算式を判別しています。
例
A=50 F=100として
X=真 Y=偽 Z=偽のとき
Z=F-A
Zの値は50
やはり、IIFでX,Y,Zの値を判断し真の時計算をさせるのでしょうか
よろしくお願いいたします。
>チクッと上級編です!
ありがとうございます。
Accessの関数一覧の解説書がない分
IIFで条件設定するのかと思いました。
昨日、ヒントをいただき試してみましたが・・・
色々と関数定義のエラーが表示されました。
教えていただいた方法で試してみたいと思います。
No.1
- 回答日時:
一応、
YesNo = True ----> X -z
YesNo = False ----> Y +z
ならば、
SELECT テーブル1.ID, テーブル1.X, テーブル1.Y, テーブル1.Z, テーブル1.YesNo, IIf([YesNo],[x]-[z],[Y]+[z]) AS V FROM テーブル1;
********************************************
IIf([YesNo],[x]-[z],[Y]+[z]) AS V
********************************************
YesNo_A = True
YesNo_B = True <= 矛盾
あえて YesNo_A、YesNo_B を用意しても、矛盾が解消されていれば、
********************************************
IIf([YesNo_A],[x]-[z],[Y]+[z]) AS V
********************************************
でいけると思います。
ID X Y Z YesNo V
1 1 2 3 Yes -2
2 1 2 3 No 5
この回答への補足
申し訳ありません。
質問の内容に不備がありました。
テーブルにデータ型がYes/No型の項目があります。
入力時チェックマークを入れます。
A=100 B=50 D=True E=False
Dにチェックが入っていたとき、Z=A-B
(それ以外は無視)
Eにチェックが入っていたとき、Z=A+B
といった感じで、Zを求める内容(計算式)が変化します。(Z内容を更新)
Zはテーブルで定義済みです。
早速回答ありがとうございます。
試してみたいと思います。
True False(真/偽)でチェックマークを判断し
条件文になるのですね。
初心者のため関数がわからないのですが
クエリで条件判断する場合、IFではなくIIFなのですね。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- Access(アクセス) Accessに関する質問です。 クエリーQ出勤 からフォームF出勤を作成 フォームは分割フォームで作 1 2023/05/26 08:57
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Oracle SQL update方法 2 2022/06/22 14:07
- 中学校 英語での答え方はこれで正解ですか? (このように実際に聞くかとかは別として、あくまでも文法として) 2 2022/11/19 17:52
- Excel(エクセル) 見えているセルの数字だけの合計を計算させたい 4 2022/09/11 17:23
- その他(データベース) Microsoft Accessについて 1 2022/06/06 16:20
- Access(アクセス) アクセスのグループ化で、 No.が10番台のJPY合計 No.が20番台のJPY合計 No.が30番 1 2022/12/20 14:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでテーブル名やクエリ名...
-
ACCESSに同時アクセス(編集)を...
-
フォームの計算がテーブルに反...
-
ACCESS;フォーマットの...
-
アクセスで消し込みがしたい
-
Accessでvlookupみたいなことは...
-
ツリー構造をRDBで表現するには?
-
Accessの追加クエリで既存のテ...
-
ACCESSで同じテーブルに...
-
access テーブル内のレコード...
-
Accessクエリでの、LIKE条件
-
3つの表を1つに縦に連結する
-
時間の足し算
-
翌営業日までの日数をSQLで求め...
-
テーブル作成クエリで主キーを設定
-
アクセスのデータをエクセルに...
-
アクセスのテーブルをくっつけ...
-
SQL構文について教えてください
-
Accessでテーブルにパスワード...
-
MS Access からメールを送るには
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでテーブル名やクエリ名...
-
ACCESSに同時アクセス(編集)を...
-
Accessでvlookupみたいなことは...
-
Accessでテーブルからテーブル...
-
Accessクエリでの、LIKE条件
-
Accessレコードの追加や変更が...
-
access テーブル内のレコード...
-
3つの表を1つに縦に連結する
-
SQLで日付を条件に削除したい
-
Accessの追加クエリで既存のテ...
-
SQLで条件指定結合をしたいがNU...
-
デザインビューで、連結式 を...
-
ツリー構造をRDBで表現するには?
-
ACCESSで指定されたテーブルか...
-
リンクテーブルを CopyObject ...
-
2つのテーブルを比較して一致し...
-
時間の足し算
-
ODBCで接続するとDBに変更/追加...
-
パススルークエリをテーブル作...
-
INSERT時にデータ登録とmaxの発...
おすすめ情報