I had a problem with my horn and it turned out to be one of the terminals in the relay socket was loose and wasn't making contact, I think the tang that locks it into the socket needed to be bent a little to grip the socket and keep it in place, that took a bit of finding!
Graham