Надеюсь, кто-нибудь поможет мне с этим. Я написал запрос в Access 2003, который объединяет связанную таблицу "taxon_group_max_per_site"
и перекрестный запрос "Отдельные виды по group_Crosstab".
Из таблицы у меня есть поля "Taxonomic Group"
и "Max"
, а из кросс-таблицы - поля "Total_Of_Species_S"
.
Таблица и кросс-таблица связаны, и запрос работает нормально, пока я не добавлю какой-нибудь VBA, чтобы дать каждой таксономической группе оценку на основе "Max"
и "Total_Of_Species_S"
.
Приведенный ниже код вызывает "Error 13: type mismatch"
Public Function Invert_Diversity_Score (Total_Of_Species_S As Integer) As Integer
If Total_Of_Species_S < Round("[Max]*0.5", 0) Then
Invert_Diversity_Score = 0
Else
If Total_Of_Species_S < Round("[Max] * 0.75", 0) Then
Invert_Diversity_Score = 1
Else
If Total_Of_Species_S < Round("[Max] * 0.875", 0) Then
Invert_Diversity_Score = 2
Else
Invert_Diversity_Score = 3
End If
End If
End If
End Function
Отладчик показывает, что "[Max]*0.5"
и другие умножения не выдают число, которое он говорит "[Max] * 0.5"= "[Max] * 0.5"
, который, я думаю, является источником несоответствия типов. Как я могу получить поле для нескольких должным образом? Он выглядит точно так же, как формат, показанный в справке VBA.