Here is latest effort. I wrote a VBA function that is called in query with expression - AssetCriteriaMatch: GetType([Fund_Name]). Still not perfect. Can't achieve perfect. Fund name Global Equities matches to Global not Equity criteria value.
Code:
Function GetType(strFund As String) As String
Dim i As Integer
Dim strType As String
Dim aryWords
aryWords = Split(strFund, " ")
For i = 0 To UBound(aryWords)
If strType = "" Then
strType = Nz(DLookup("[Asset Type]", "Rules", "[Criteria]='" & Replace(aryWords(i), "'", "''") & "'"), "")
End If
Next
GetType = IIf(strType = "", DLookup("[Asset Type]", "Rules", "InStr('" & Replace(strFund, "'", "''") & "', [Criteria])>0"), strType)
End Function