2016-12-20 2 views
-2

Мне нужна помощь; Я создал таблицу, которая хранит премию на основе следующих критериев:Получение определенного поля при доступе от одного к другому Таблица

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 - Category Матчей с Category в employee_data, и если возраст в employee_data между 0-20, обновите премиальное поле в Employee_Table из Table_Policy_Premium с соответствующей премией.

+0

OK. Вы что-то пробовали? И когда/как это обновление должно состояться? Какое событие это вызовет? –

ответ

0

Просто создайте публичную функцию в модуле, которую вы вызовете в запросе (или в форме), который вернет премиальное значение для данной категории и возраста.

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 ([категория], [возраст])

Смежные вопросы