Как найти значение в MS Access «Таблица 2» на основе «значения поля» и «имени поля» в «Таблице 1» - PullRequest
0 голосов
/ 03 сентября 2018

У меня есть 2 таблицы, как показано в прикрепленном примере Я хочу получить данные из таблицы 2 на основе двух записей: «размер» в качестве значения 1-го поля и «категория» в качестве имени поля. В Excel это легко с помощью функций Vlookup & match, но я хочу это в Access. В качестве примера: из таблицы 1 в третьей записи "size" = 3 & "category" = D, затем значение "item 3" должно быть получено из таблицы 2 с двумя условиями: "Size" = 3 & name field = "D "я е. "30". Спасибо.

Пример ; Фактические данные

1 Ответ

0 голосов
/ 05 сентября 2018

Следующая функция решила мою проблему, чтобы найти значение в таблице на основе значения в имени строки и столбца Я думаю, что может потребоваться некоторая настройка кода, чтобы быть быстрее.

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
...