1. А нафик вы вообще это так делаете? Все это громадье кода можно засунуть в одну SQL-инструкцию. Примерно так:
Код:
Query5.SQL.Text := 'insert into IstKl (Data,Sum,Deistvie)
(select Data,Peni,T.Name from Tovari T
inner join Vozvrat V on V.ID_tov=T.ID_tov
inner join Klienti K on K.ID_kl=V.ID_kl
where K.ID_kl=:ID_kl)';
Query5.Parameters.ParamValue['ID_kl'] := FormMain.Edit9.Text;
Query5.ExecSQL;
2. Если уж вам хочется именно так, то используте параметры для запросов. Меньше ошибок при передаче параметров будет, да и читается намного легче.
3. У вас точно поле ID_kl строковое?