「その本は読者に大いに影響を与えた。」英語にしたらどうなるでしょう?
The book gave a great influence to the readers.
となるかと思いますが、giveではなくhaveを使って
The book had a great influence to the readers.
「影響があった」とします。なぜgiveではだめなんでしょう?
giveは以下の様な用法があります。
He gave up the plan.
(彼はその計画をあきらめた。)
She gave birth to a girl.
(彼女は女の子を産んだ)
They gave in too soon.
(彼らはあっけなく屈した。)
giveは「自分が持っている物を与える」→「自分にあるものをなげだす」イメージがあるようです。「あきらめたり」「屈したり」すると自分がそれまで踏ん張っていたエネルギーがドッと出て行く感じがあります。
give birth to (子供を産む)も母親からエネルギーがドッと出るイメージにつながりますね。
しかし本が人に影響を与えたからと言って、本が持っているエネルギーが減るわけではありません。だからgiveは不適ということです。
で、影響が「ある」と考えて「ある」のhave。そして前置詞も、影響力のある主体(例文ではthe book)が対象(読者)と接触してそこから影響力が伝わるというイメージから、接触の on になります。
「ある」は英語はSVOの have がここにも表れています。