• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access 複数条件で自動入力)

Access複数条件で自動入力

このQ&Aのポイント
  • Accessを使用して職務と職位を入力すると月給と日給が自動的に表示される方法について説明します。
  • Windows 7とAccess 2007を使用して日報管理システムを作成しています。給与情報は職務と職位によって異なるため、職務と職位を入力すると月給と日給が自動的に表示されるようにしたいです。
  • 弊社では職務と職位によって給料段階が異なります。職務には研修生、職人、リーダーの3つの職位があります。職務と職位を入力すると、基本給や手当などが自動的に表示される給与明細のフォームを作成したいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

>以上の二つテーブルから社員の給与明細のフォームを作成しています。 >日付  社員ID 社員名 職務 職位 月給 日給 この明細フォームのレコードソースは二つのテーブルだけでは 無いと思いますが、また、給与明細のフォームでの職務、職位が テキスト型なのか、あるいは数値型なのかまったくわからない のでわからないままコードを作成すると当然ながらあちこちで エラーが発生します。あらかじめそういう情報、あるいは 給与明細フォームで、職務は単純なテキストボックスか、あるいは コンボボックスか、同様に職位に関しても事前に情報が提供されて いれば回答、補足のやり取りが少なくてすみます。 そういうことは棚上げにして、以下に 方法を示しておきます。給与明細のフォームでのイベントで 二つの方法を示しておきます。(1)、(2)のどちらでも結果は 同じです。 なお、(1)、(2)ともにデータの型の違いにより三つほど 例を入れておきました。一応、給与明細のフォームの 職務、職位はテキストボックスで手入力するものとしています。 準備: クエリの作成 Q給与情報という名前でクエリを作成します。 Q給与情報 SELECT 職務テーブル.職務名称, 給与情報テーブル.職務ID, 給与情報テーブル.職位, 給与情報テーブル.基本給, 給与情報テーブル.手当, 給与情報テーブル.月給, 給与情報テーブル.日給 FROM 職務テーブル INNER JOIN 給与情報テーブル ON 職務テーブル.職務ID = 給与情報テーブル.職務ID; 給与明細のフォームでのイベント: 月給フィールドフォーカス取得時と 職位更新後処理のイベントの二つを 表示しておきます。どちらかで 結構です。 (1) Private Sub 月給_Enter() If Not IsNull(Me![職務]) Then '職務、職位が数値型の場合 'Me![月給] = DLookup("月給", "Q給与情報", "[職務名称]=" & Me![職務] & " And [職位]=" & Me![職位]) '職務が数値型、職位がテキスト型の場合 'Me![月給] = DLookup("月給", "Q給与情報", "職務名称=" & Me!職務 & " And 職位='" & Me![職位] & "'") '職務、職位がテキスト型の場合 Me![月給] = DLookup("月給", "Q給与情報", "職務名称='" & Me!職務 & "' And 職位='" & Me![職位] & "'") End If End Sub (2) Private Sub 職位_AfterUpdate() If Not IsNull(Me![職務]) Then '職務、職位が数値型の場合 'Me![月給] = DLookup("月給", "Q給与情報", "[職務名称]=" & Me![職務] & " And [職位]=" & Me![職位]) '職務が数値型、職位がテキスト型の場合 'Me![月給] = DLookup("月給", "Q給与情報", "職務名称=" & Me!職務 & " And 職位='" & Me![職位] & "'") '職務、職位がテキスト型の場合 Me![月給] = DLookup("月給", "Q給与情報", "職務名称='" & Me!職務 & "' And 職位='" & Me![職位] & "'") End If End Sub 間違い、勘違い、分からないことがあれば補足してください。

その他の回答 (1)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

No1です。 回答に抜けているところがありました。 給与明細のフォームのレコードソースは質問の、 >以上の二つテーブルから社員の給与明細のフォームを >作成しています。 ではなく、別個に 日付  社員ID 社員名 職務 職位 月給 日給 で、給与明細テーブルというもの作って回答しています。 結果は多分同じだと思いますが、一応念のために。 理由は、No1でも説明しましたが、 >以上の二つテーブルから社員の給与明細のフォームを >作成しています。 では、給与明細のフォームのフィールドが足りないからです。

nuocngoai
質問者

お礼

大変助かりました。 これでうまく行きました。 ありがとうございます。

関連するQ&A