I thought all of them were correct, but I was told "had a vaccine" is the idiomatic usage. Why is that? Is there a particular reason for this?
I had a vaccination
is nonstandard, as well as
I took a vaccination
I've noticed that generally, the only common English use of this phrase is
I was vaccinated
or "I got vaccinated".
The person who told you was mistaken; "had a vaccine" is not idiomatic.