
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
握力って手の大きさゲーですよ...
-
握力計なしで握力を測る方法は...
-
日本猿と人間、どっちが強い?
-
握力って30kgくらいから1週間鍛...
-
握力についてです。 僕は中学生...
-
胡桃(くるみ)を手の平で擦り...
-
本物のトトロに会ったことがあ...
-
割り箸一善を片手で割ったら、...
-
握力が130キロあるって言っても...
-
握力は両手の場合、右手と左手...
-
10円玉をねじ曲げる握力
-
ホロライブのメンバーの身体能...
-
缶コーヒーを片手で開けるコツ...
-
朝の筋トレ
-
筋トレ時の呼吸法
-
15キロでダンベルカールしてい...
-
中学2年で柔道しています。あと...
-
ザローリングストーンズのミッ...
-
高校生体型についてです。最近...
-
高校生です。2、3年家族にバレ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
握力って手の大きさゲーですよ...
-
握力計なしで握力を測る方法は...
-
日本猿と人間、どっちが強い?
-
ハンドグリップで、握力はつき...
-
缶コーヒーを片手で開けるコツ...
-
体育関係に詳しい人に質問です...
-
アーノルド・シュワルツェネッ...
-
スチール缶潰しとりんご潰しど...
-
握力は両手の場合、右手と左手...
-
割り箸一善を片手で割ったら、...
-
10円玉をねじ曲げる握力
-
スポーツテストの握力計が滑ら...
-
どのくらいの握力があれば両手...
-
今日女性と腕相撲しました。そ...
-
ピアニストの握力
-
幼なじみの女子に腕相撲で負けた
-
ドラマ「優しい時間」での あの...
-
代謝が2倍になったら、2倍の...
-
胡桃(くるみ)を手の平で擦り...
-
握力の鍛え方
おすすめ情報