Я бы предложил один столбец «индекс», но вместо того, чтобы вычислять его каждый раз для запроса (который выполняется в 1000 раз медленнее), выполните одноразовое заполнение по формуле «книга * 1000000 + глава * 1000 + стих» .
UPDATE bible
SET index = book * 1000000 + chapter * 1000 + verse
Допустим, у вас есть элементы управления в форме для выбора книги, главы и стиха, как для начала, так и для конца. Затем вы должны построить фильтры как
SELECT index, verse
FROM bible
WHERE index >=
Forms!f!startBook * 1000000 + Forms!f!startChapter + 1000 + Forms!f!startVerse
AND index <=
Forms!f!endBook * 1000000 + Forms!f!endChapter + 1000 + Forms!f!Verse
Если вам нужно использовать вычисляемый столбец каждый раз (у меня больше, чем предположения, что он больше 1 мс), то
SELECT index_, verse
FROM (select book * 1000000 + chapter * 1000 + verse as index_, * from bible) B
WHERE index_ >= 1 AND index_ <= 2
Где два? Являются заполнителями команды ASP для параметров. Пересчитайте индекс по той же формуле
startIndex = Request("sbook") * 1000000 + Request("schapter") * 1000 + Request("sverse")