Похоже, что у вас есть отношение 1 ко многим между продуктами и правилами компенсации.Каждый продукт может иметь много правил компенсации.Итак, структурируйте базу данных соответствующим образом: 
Таблица продуктов присваивает 1 ProductID каждому продукту на складе.были добавлены таблицы ProductTypes и CompensationRuleTypes, чтобы база данных могла расширяться для обработки новых продуктов и правил компенсации.MyDataTable не имеет никакой дополнительной информации, поэтому замените его формой, если конечный пользователь должен сделать что-то, например, добавление продуктов, и замените его отчетом, если конечному пользователю нужно только увидеть количество продуктов.
Далее он выглядитКак вы хотите VBA код, который заполняет таблицу ProductCompensationRules для всех продуктов.Этот код также проверяет, были ли добавлены соответствующие правила, и пропускает их в этом случае:
Private Sub FillCompensationRulesTableUsingVBA()
Dim rsProducts As dao.Recordset
Set rsProducts = CurrentDb.OpenRecordset("Products", dbOpenDynaset)
Dim rsProductsCompensationRules As dao.Recordset
Set rsProductsCompensationRules = CurrentDb.OpenRecordset("ProductCompensationRules", dbOpenDynaset)
rsProducts.MoveFirst
Do While Not rsProducts.EOF 'loop through products and add compensation rule 2 for all products and compensation rule 1 for producttype 2
If IsNull(DLookup("ProductID", "ProductCompensationRules", "ProductID = " & rsProducts!ProductID & " AND CompensationRuleID = 2")) Then
With rsProductsCompensationRules
.AddNew
!ProductID = rsProducts!ProductID
!CompensationRuleID = 2
.Update
End With
End If
If rsProducts!ProductTypeID = 2 Then
If IsNull(DLookup("ProductID", "ProductCompensationRules", "ProductID = " & rsProducts!ProductID & " AND CompensationRuleID = 1")) Then
With rsProductsCompensationRules
.AddNew
!ProductID = rsProducts!ProductID
!CompensationRuleID = 1
.Update
End With
End If
End If
rsProducts.MoveNext
Loop
'clean up
rsProducts.Close
rsProductsCompensationRules.Close
Set rsProducts = Nothing
Set rsProductsCompensationRules = Nothing
End Sub