- ベストアンサー
身長、体重かBMIを算出したい。
アクセスで身長、体重、標準体重、肥満度、BMIを算出したいのですが、どこに計算式を入力したらよいのか解りません。EXCELなら簡単にできますが、入力フォームを作って誰でも簡単に入力できるようにしたいのでアクセスで作成したいと考えています。計算式の入力の仕方(場所)を教えてください。よろしくお願いします。。。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
Alt + F11 で VBE のウィンドウを開き、メニュー → 挿入 → 標準モジュール で下記のコードを標準モジュールに挿入します。 フォームのコントロール名がそれぞれ 身長、体重、標準体重、肥満度、BMI とすると 例えば肥満度でしたら そのコントロールソースに =debu([身長],[体重]) とすれば良いと思います Function DEBU(Height As Variant, Weight As Variant) As Variant の引数 Height に「身長」コントロールの値が Weight には「体重」コントロールの値が入ります。 この下からコピペ '標準体重=身長(m)の2乗×22、 Function standardWeight(Height As Variant) As Double On Error GoTo err standardWeight = (Nz(Height, 0) / 100) ^ 2 * 22 '小数第二位で四捨五入 standardWeight = Int(standardWeight * 10 + 0.5) / 10 Exit Function err: standardWeight = -999 End Function '肥満度(%)=体重/標準体重×100-100、 Function DEBU(Height As Variant, Weight As Variant) As Double On Error GoTo err DEBU = Weight / ((Height / 100) ^ 2 * 22) * 100 - 100 DEBU = Fix(DEBU * 10 + 0.5) / 10 'DEBU = Int(DEBU * 10 + 0.5) / 10 Exit Function err: DEBU = -999 End Function 'BMI=体重/身長(m)の2乗です。 '入力は体重と身長のみで、身長の単位はcmで入力したいと思っています。 Function BMI(Height As Variant, Weight As Variant) As Double On Error GoTo err BMI = Weight / (Height / 100) ^ 2 BMI = Int(BMI * 10 + 0.5) / 10 Exit Function err: BMI = -999 End Function
その他の回答 (4)
簡単に作るには、 テキストボックス [身長],[体重],[標準体重],[肥満度],[BMI] を作成し、 コマンドボタン「計算」を作成し、押下したときのイベントにそれぞれ計算をして表示させるというのがよいと思います。 例としては Private Sub 計算_Click() Me.BMI.Value =me.体重.value/(me.身長.value)^2 ・・・・・・ me.refresh End Sub もしくは計算した値をメッセージボックスで表示させるとか、 身長、体重に数値が正しい単位で入力されていることを入力時、もしくは計算時にチェックしなければなりません。
お礼
ありがとうございました。またよろしくお願いします。
履歴管理をしなくてよいなら、 フォーム上にテキストボックスをいくつか配置して、身長、体重が入力されたときに標準体重、肥満度などを計算させて表示させるのが(VBAで書くのが)手っ取り早いと思います。 標準体重は計算で出しているものですか? それとも、年齢、性別などでテーブルなどを参照しているのでしょうか? 履歴管理をするならば、テーブルをいくつか作る必要があります。 一般的に使いやすくするためには、感受性のケースでは患者データをフォームに呼び込むためには患者IDを入力した際に、VBAなどでテーブルを検索して該当データをフォームに呼び込んでいした。
補足
履歴管理はしません。単純に体重と身長を入力したら、計算で標準体重、肥満度、BMIが表示されるようにしたいです。入力は身長(cm)、体重(Kg)のみで、計算式は、標準体重=身長(m)の2乗×22、肥満度(%)=体重/標準体重×100-100、BMI=体重/身長(m)の2乗です。
- nicotinism
- ベストアンサー率70% (1019/1452)
私なら標準モジュールに自前の関数を作成して クエリ・フォーム・レポートで呼び出すようにします これなら不都合が有った場合でも一箇所(関数)を変更すれば良いので 最初は戸惑うかもしれませんが長期的にはメンテナンスがし易いかと 思います。 標準体重、肥満度、BMI の求め方の公式?が分からないので・・ (BMIってなに?) ここまでにいたします。
お礼
ありがとうございました。またよろしくお願いします。
補足
ありがとうございます。標準体重=身長(m)の2乗×22、肥満度(%)=体重/標準体重×100-100、BMI=体重/身長(m)の2乗です。ちなみに入力は体重と身長のみで、身長の単位はcmで入力したいと思っています。よろしくお願いします。
たとえば [テキスト0]と[テキスト1]というテキストボックスがあって[テキスト2]というテキストボックスに合計を出すとしたら[テキスト2]のプロパティのコントロールソースに=[テキスト0]+[テキスト1]とか書きますね。 コレが一番エクセル的かも。 でも、アクセスの場合、VBAを使う方がわかりやすいかも。 また、データはテーブルに置くと思うのですがそのデータをどういう方法でフォームに表示させるか、そのあたりも気になりますね。連結フォームなのか非連結フォームなのか。 とりあえず、そんなとこですが、他にも計算方法はあります。
お礼
ありがとうございました。またよろしくお願いします。
補足
履歴管理はしないので、非連結フォームのつもりです。
お礼
ありがとうございました。うまくできました。またよろしくお願いします。