Сообщение об ошибке точно говорит вам, в чем проблема, я думаю.
Индекс в поле связывания таблицы подробностей необходим для того, чтобы при перемещении указателя записи основной таблицы можно было найти соответствующие строки в таблице подробностей. Сообщение об ошибке указывает на отсутствие индекса по необходимому столбцу в таблице сведений.
Решение заключается в добавлении индекса в таблицу перед открытием таблицы сведений. Вам нужно сделать это только один раз (я говорю, потому что вы не указали, какую базу данных вы используете).
РЕДАКТИРОВАТЬ: после третьего комментария, описывающего детали схемы.
Ваша проблема здесь: «SQL подробного запроса: ... WHERE order_no =: order_no», а вы говорите: «4) order_no & custID - индекс двух столбцов». Вы используете только половину значения индекса, а таблица сведений не может понять, что делать.
Вам нужно либо:
1) Создать новый индекс только для order_no (что кажется плохой идеей)
или
2) (предпочтительно) Добавьте custID к SQL-запросу подробного запроса:
WHERE order_no = :order_no AND custID = :custID