如何在 MS Access "Table 2" 中查找基于"a field value" "a field name" "Table 1"的值



我有 2 个表,如随附的示例所示 我想根据两条记录从表 2 中检索数据,"size"作为第一个字段值,"类别"作为字段名称。 在Excel中,使用Vlookup和匹配功能很容易,但我希望它在Access中。 例如:从表1的第3条记录中,"size"=3和"category"=D,那么"item 3"值应从表2中检索,有两个条件:"size"=3和字段名称="D",即"30"。 谢谢。

例; 实际数据

以下函数解决了我的问题,即根据行和列名称中的值在表上查找值我认为可能需要对代码进行一些调整才能更快。

Function MatchColumn(row As Single, column As String) As Single
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Dim rs As DAO.Recordset
Dim fld As DAO.Field
Dim Pos As Integer ' coulmn position
Set db = CurrentDb
Set tdf = db.TableDefs("Table 2")
Set rs = tdf.OpenRecordset
For Each fld In tdf.Fields
If fld.Name <> column Then Else Exit For
Next
Pos = fld.OrdinalPosition
If Not (rs.EOF And rs.BOF) Then
Do While Not rs.Fields(0).Value = row
rs.MoveNext
Loop
MatchColumn = rs.Fields(Pos).Value
rs.Close
Set rs = Nothing
Set qdf = Nothing
Set db = Nothing
End If
End Function