
Accessのフォームで複数条件でフィールドの値を表示する方法を教えてほしいです。
フィールドは以下のようになっています。
氏名CD
氏名
部課CD
所属
性別
握力右
握力左
握力平均
握力得点
※その他フィールドは省略
今回フォームで表示したいのが「握力得点」フィールドの値で、
性別が「男」でかつ握力平均が0~31のとき、握力得点は「1」
性別が「男」でかつ握力平均が32~36のとき、握力得点は「2」
性別が「女」でかつ握力平均が0~18のとき、握力得点は「1」
性別が「女」でかつ握力平均が19~20のとき、握力得点は「2」
と表示されるようにしたいです。
「性別は」すでに入力済で、「握力平均」の値を入力すると「握力得点」に自動で値が入るようにしたいです。
説明が下手で申し訳ございませんが、わかる方がいましたら教えてほしいです。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
こんにちは
これらを定義してからテキストLostFocusイベントを走らせればいけると思います
LostFocusの発生させ方はデザインビューでテキストボックスプロパティの
イベントのフォーカス喪失後の…をクリックしてコードビルダーを選択
【定義】
性別:txtGender
握力:txtGrip
ポイント:txtPoint
【ソース】
Private Sub txtGrip_LostFocus()
Dim iValue As Integer
Dim strGender As String
Dim iPoint As Integer
iValue = Val(txtGrip.Value)
strGender = txtGender.Value
iPoint = 0
If strGender = "男" Then
Select Case iValue
Case 0 To 31
iPoint = 1
Case 32 To 36
iPoint = 2
Case Else
iPoint = 3
End Select
ElseIf strGender = "女" Then
Select Case iValue
Case 0 To 18
iPoint = 1
Case 19 To 20
iPoint = 2
Case Else
iPoint = 3
End Select
End If
txtPoint.Value = iPoint
End Sub
回答ありがとうございます。
定義の仕方がわからなかったので教えてほしいです。
また定義の部分で握力:texGripは質問のフィールドでいうと「握力平均」
ポイント:texPointは「握力得点」のことでよろしいでしょうか?
いろいろ質問して申し訳ないですがよろしくお願いします。
No.4
- 回答日時:
連投すみません。
帰宅して確認してみました。よく読んだら、テーブルの[握力得点]フィールドに値を代入したいんですね。勘違いしました。
それなら更新クエリでできますよ。テーブル名はご自分のものに合わせて下さい。
[Accessメニュー]-[作成]-[クエリデザイン]
[テーブル/クエリ選択]はキャンセル
[右クリック]-[SQLビュー]で下のSQLを貼付け
[握力得点更新クエリ]と名前を付けて保存
UPDATE [テーブル1] SET
[握力得点] = ABS(
(([性別]='男') * IIf([握力平均]<32,1,2))+(([性別]='女') * IIf([握力平均]<19,1,2))
);
これで保存したクエリをダブルクリック(実行)すると一発で更新します。
#余談
テーブルの正規化という観点から言えば、
「計算できる項目はテーブルに保存しない」
となります。今回の件だと握力得点フィールドですね。
テーブルから[握力得点]フィールドを削除し、表示を計算で行うにはクエリのSQLビューで次を貼付けし、保存、ついでこれを元にフォームウィザードを起動すると一発かもしれません。
一応、[握力得点2]とフィールド名は変更してます。
SELECT *, (([性別]='男') * IIf([握力平均]<32,1,2))+(([性別]='女') * IIf([握力平均]<19,1,2)) AS [握力得点2]
FROM [テーブル1];
No.3
- 回答日時:
こんにちは。
横入り失礼します。表示だけの問題ですよね?
既ご回答以外では、非連結のテキストボックスなどのコントロールを Form に配置し、その ControlSource プロパティに Excel の様な IIF関数の式を埋め込むのはどうですか?
https://docs.microsoft.com/ja-jp/office/vba/api/ …
出先なので確認してませんが、多分できるはず。
他にはAccessらしく、得点フィールドを追加したクエリを作成(IIF関数で表示内容は分岐させます)、それを Form の RecordSource に指定するやり方でもいけたと思います。
No.2
- 回答日時:
お疲れ様です
>また定義の部分で握力:texGripは質問のフィールドでいうと「握力平均」
>ポイント:texPointは「握力得点」のことでよろしいでしょうか?
仰る通りのイメージです
テキストボックス名・イベント処理名を調整して頂けると助かります
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Access(アクセス) Accessフォーム 一部のレコードだけを抽出する方法について 1 2022/06/28 18:45
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- その他(データベース) Accessフォームにて指定のフィールドの平均値を小数点第一位で表示できない 2 2022/08/30 17:19
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- その他(プログラミング・Web制作) python コードについて(初学者です) 3 2023/07/20 14:44
- その他(Microsoft Office) Excelでユーザ名を入力すればそのユーザの最大、平均が表示されるようにする、何も入力されてなければ 1 2022/07/28 00:31
- C言語・C++・C# 3つの倍精度浮動小数点値の平均を求めて、3つの引数全てを平均値に変更するメソッドを作成し、キーボード 1 2022/07/13 16:04
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Excel(エクセル) Excelで全クラスのランキング表を作成したい 4 2022/05/24 15:28
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
10円玉をねじ曲げる握力
-
缶コーヒーを片手で開けるコツ...
-
刃牙道の野見宿禰と花山薫が闘...
-
握力って手の大きさゲーですよ...
-
女性と腕相撲して3回続けて負け...
-
喧嘩強いのと握力強いのって比...
-
幼なじみの女子に腕相撲で負けた
-
アニメを見ていて疑問に思うこ...
-
握力のかっこいいパフォーマン...
-
体力をつけるには・・・
-
筋トレや運動の前後ってプロテ...
-
室内で可能な短距離走の練習方法
-
筋肉付けたいと思うですがある...
-
高校生体型についてです。最近...
-
筋肉をつけずに体力をつけたい。
-
身長について
-
筋トレYouTuberのなーすけって...
-
B'zの稲葉さんて筋肉落ちて痩せ...
-
銀魂の銀さんは大の甘党なのに...
-
15キロでダンベルカールしてい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10円玉をねじ曲げる握力
-
握力って手の大きさゲーですよ...
-
握力計なしで握力を測る方法は...
-
缶コーヒーを片手で開けるコツ...
-
どのくらいの握力があれば両手...
-
日本猿と人間、どっちが強い?
-
握力って30kgくらいから1週間鍛...
-
握力は両手の場合、右手と左手...
-
今日女性と腕相撲しました。そ...
-
Accessフォームで複数条件でフ...
-
ハンドグリップで、握力はつき...
-
喧嘩強いのと握力強いのって比...
-
女性と腕相撲して3回続けて負け...
-
ホロライブのメンバーの身体能...
-
Excel関数について教えてくださ...
-
ハンドグリップだけで、どこま...
-
小学6年で握力8キロくらいしか...
-
割り箸一善を片手で割ったら、...
-
胡桃(くるみ)を手の平で擦り...
-
握力
おすすめ情報