2016-12-20 15 views
-2

私は助けが必要です。私は、次の基準に基づいて保険料を格納する表を作成しました:特定のフィールドを1つのテーブルから別のテーブルにフェッチする

Table_Policy_Premium 
1. Category: A 
2. Min Age: 0 
3. Max Age: 20 
4. Premium: USD1000 

同じカテゴリは、次のフィールドで年齢の他の範囲、最小21、最大64、およびプレミアムを有することができます。

プレミアムフィールドがある別のテーブル、つまりemployee_data,があります。各従業員に対して以下の基準に基づいてTPPテーブルから更新する必要があります。

Table_Policy_Premium場合 - employee_data年齢は0-20の間にある場合employee_dataCategoryCategoryマッチは、および、適切な保険料でTable_Policy_PremiumからEmployee_Tableでプレミアムフィールドを更新。

+0

OK。何か試しましたか?そして、このアップデートはいつ行われますか?どんな出来事がそれを引き起こすでしょうか? –

答えて

0

クエリで(またはフォーム上で)呼び出すモジュールでpublic関数を作成するだけで、指定されたカテゴリと年齢のプレミアム値が返されます。

Public Function getPremium(strCat As String, intAge as Integer) As Double 

    'variables 
    Dim strQuery As String 
    Dim rstQuery As dao.Recordset 
    Dim dbs As dao.Database 

    'set database 
    Set dbs = CurrentDb 

    'prepare query 
    strQuery = "SELECT Premium " & _ 
       "FROM Table_Policy_Premium " & _ 
       "WHERE Category = '" & strCat & "' AND " & _ 
       "[Min Age] <= " & intAge & " AND " & _ 
       "[Max Age] >= " & intAge & ";" 


    'open recordset 
    Set rstQuery = dbs.OpenRecordset(strQuery) 

    'check if there is a record 
    If rstQuery.EOF Then 

     'no record - set premium to 0 
     getPremium = 0 
    Else 

     'record found 
     getPremium = rstQuery!Premium 
    End If 

    Set rstQuery = Nothing 
    Set dbs = Nothing 

End Function 

は単にクエリでフィールドとしてこれを挿入することにより、関数を呼び出す:getPremium([カテゴリ]、[年齢])

関連する問題