Вы поместили =
вне разделителей строк.
Это означает: скажем, ваш ID равен 5. Тогда параметр равен "[household_id]" = 5
. Это сравнение между строкой "[household_id]"
и числом 5
, которое вызывает несоответствие типов, потому что вы не можете сравнивать строки с числами, если строка не может быть приведена к числу.
Вместо этого вы должны включить =
в вашу строку, а DLookUp
должно быть:
DLookup("last_name", "Dat_household_member", "[household_id] = " & VMax)
Или, еще лучше, использовать параметры . Это позволяет избежать большинства ошибок приведения типов и конкатенации строк.
TempVars!VMax = VMax
DLookup("last_name", "Dat_household_member", "[household_id] = TempVars!VMax")
TempVars.Remove "VMax"