我有2个表格,如所附示例所示 我想基于两个记录从表2检索数据,“大小”作为第一字段值,“类别”作为字段名。 在Excel中,使用Vlookup和match函数很容易,但是我希望在Access中使用它。 例如:从第三条记录的表1中,“ size” = 3&“ category” = D,则必须在两个条件下从表2中检索“ item 3”值:“ Size” = 3&字段名称=“ D “ 一世。 e。 “ 30”。 谢谢。
答案 0 :(得分:0)
以下功能解决了我的问题,该问题基于行和列名称中的值在表上查找值 我认为可能需要对代码进行一些调整才能更快。
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