How can I teach my horse to be more calm for the vet and to accept shots

It will take a little bit of time, patience, and frequency but it can be done. The best thing you can do is a lot of petting and rubbing of him all over. Once he allows you to do that with no problem get a syringe without the needle to practice with. Show him it and rub him around his neck with it. Then when he accepts that okay alternate patting and rubbing him at the neck with the palm of your hand while holding the syringe. Again repeat this pattern till he is very calm about it. You can give him treats occasionally too when he stands quietly for you. After he does great for you with all of the above. Get a rag that has some rubbing alcohol on in it and or a rag with betadine on it along with latex gloves. Rub him with those around the neck so that he starts associating the smells that a vet may have with the rubbing and petting that you have done before. Practice this till he is calm about it. Note that you should do this several days in a row and then occasionally before it is time for the vet.

After you have exposed him to the sights, smells, and feels of what a vet may do yourself (since he already knows you won't hurt him) then when it comes time for the vet himself to do the exam he should be calmer about it. It still will take practice so don't expect a miracle overnight but it will work.