ちょっと変わったマニアな作品が集結

Access入門編書籍のことができるくらいになったばかりの者です。
測定結果を管理する目的で台帳を作成しました。
測定の種類には 午前測定 正午測定 午後測定があり、同日に採取された試料を測定します。
測定値に対して午前測定と午後測定は係数①を、正午測定は係数②をかけて真の測定値とします。
また、測定装置は年に4回の定期点検があり、そのたびに係数①と係数②が変わります。(修理後も)

測定結果Tの係数種類を日付と測定種類から自動的に入力する方法を考えています。
周囲にAccessを使用している人もおらず、困っています。
どなたかお知恵をお貸し下さい。
測定結果Tと係数Tは以下のとおりです。

測定結果T

測定ID 日付  測定種類   測定値   係数種類   真の測定値
 1    4/4   午前     200   係数①(1.1)   220
 2    4/4   正午     100   係数②(0.9)    90
3 4/4   午後     300   係数①(1.1)   330
4 4/6   午前     200   係数①(1.2)   240
5 4/6   正午     100   係数②(0.8)    80
6 4/6   午後     200   係数①(1.2)   240


係数T

係数ID 日付  係数値   係数種類
1 1/5   1.1    係数①
 2   1/5   0.9    係数②
 3   4/5   1.2    係数①
4 4/5 0.8 係数②

質問者からの補足コメント

  • うーん・・・

    業務は5人でローテーションしてます。
    中にはPC操作の苦手な方いるので、入力や、結果の確認はフォームで行いたいと考えました。
    実際の係数は小数点以下5桁あり、手動での入力は危険であると思い、最初は測定種類に午前または午後が選択されたら係数①を、それ以外は係数②が表示されるようにしました。

    が、定期点検前後で係数が変わってしまうので、測定日に対応した係数を係数Tから
    絞り込み該当期間の係数①、係数②を表示する必要があることに気づきました。

    例)1/6~4/4までに行った測定は、係数①の場合  真の測定値=測定値×係数①(1.1)
      4/5以降に行った測定は、   係数①の場合  真の測定値=測定値×係数①(1.2)
    となります。
    説明が足りずもうしわけありませんでした。

    No.2の回答に寄せられた補足コメントです。 補足日時:2016/11/24 18:19

A 回答 (3件)

係数Tに期間と測定種類を追加しました。


係数T
係数ID 開始日 終了日 測定種類 係数値 係数種類
1 01/01 04/04 午前 1.1 係数①
2 01/01 04/04 午後 1.1 係数①
3 01/01 04/04 正午 0.9 係数②
4 04/05 12/31 午前 1.2 係数①
5 04/05 12/31 午後 1.2 係数①
6 04/05 12/31 正午 0.8 係数②

フォームの日付、測定種類、測定値の更新後処理で
Me.係数種類 = DLookup("係数種類", "係数T", "開始日 <= #" & Me.日付 & "# AND 終了日 >=#" & Me.日付 & "# AND 測定種類 ='" & Me.測定種類 & "'")
Me.真の測定値 = Me.測定値 * DLookup("係数値", "係数T", "開始日 <= #" & Me.日付 & "# AND 終了日 >=#" & Me.日付 & "# AND 測定種類 ='" & Me.測定種類 & "'")
を実行すれば係数種類、真の測定値に値が入ります。
エラー処理は入れていませんので必要に応じて入れてください。


入力された日付と測定種類を抽出条件にして
係数Tから該当の係数種類、係数値を出しています。
    • good
    • 0
この回答へのお礼

カスタマイズとエラー処理を追加して問題解決できました。
式ばかりに関心がいって、テーブルのデザインを見直すことができてませんでした。発想の転換って大事ですね。
本当にありがとうございました。

お礼日時:2016/11/25 22:11

測定結果Tには


日付、測定種類、測定値を入力して
係数種類、真の測定値を求めるのでは?

係数T
1 1/5 1.1 係数①
2 1/5 0.9 係数②
3 4/5 1.2 係数①
4 4/5 0.8 係数②


1 1/5 午前 1.1 係数①
2 1/5 午後 0.9 係数②
3 4/5 午前 1.2 係数①
4 4/5 午後 0.8 係数②
なのではと思ったのですが。

よく見たら正午もあるので違いますね。
測定結果Tと係数Tの関係がわかりません。
日付と測定種類から係数種類をどのように出しているのですか?
この回答への補足あり
    • good
    • 0

日付と測定種類から係数種類を出すなら


係数Tに測定種類のフィールドを追加する。
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
係数Tに測定種類のフィールドを追加する。との事ですが、
係数①には午前測定と午後測定が該当するので、
点検後に3つの係数IDを追加すればいいのでしょうか?

お礼日時:2016/11/24 15:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

QACCESSで条件によってフォーム上のフィールドの色を変更

一覧形式のフォームがあり、条件によって色を変更したいのですが、その条件というのが下記のような感じです。

フィールドA | フィールドB | フィールドC | チェックボックス
チェックボックスのチェックがあったら、フィールドA・B・Cの色をグレーにする。
チェックがなかったら白いまま。

というものです。
条件付書式だと、色を変更するフィールドそのもののデータを参照にしないといけないんですよね?
フォームオープンのところにVBAをかいてみたんですが、ひとつひとつは認識してないみたいで…。
どのようにすればいいのでしょうか?

よろしくお願いします。

Aベストアンサー

フォームのデザイン画面で3つのフィールドすべて選択し条件付書式画面を表示させる。
条件1のコンボで”式”を選択。
右側の欄に[チェックボックスのコントロール名]=True
と入力し、バケツアイコンでグレーを選択。
(もちろん1フィールドづつ設定してもOK)

Qアクセスで数値型のフィールドにNullをいれたい

初歩的な質問ですが、お願いします。
データベースを用いたWebアプリケーションを作成中ですが、数値型のフィールドで、
どうしても空白になってしまう部分があります。
入力フォームが空欄だと、エラーになってしまいます。
明示的にNull値の入力を許可するように設定する、というところ
までは調べてわかったのですが、具体的にはどのように
したらよいのでしょうか?
VBAなどを使わないとダメですか?
よろしくお願いします。

Aベストアンサー

詳しい補足ありがとうございます。
mei0311さんが補足に書かれましたように、フィールドプロパティの規定値をNullにすれば大丈夫そうですね。
ですが、規定値を空欄にしても、入力エラーは出ませんでした(Access上の入力ですが)。

念のため確認させて頂きますが、DBに書き込みに行く際にフォームの入力内容をチェックして、「空欄だと何も書かない」というようにプログラムされていますよね?
数値型のフィールドに、プログラム的にNull文字列を書き込もうとエラーが出たような気がするのですが…(かなり過去の記憶ですのでイマイチ自信がありません)。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング