Eating the grass isn't causing the upset stomach - dogs eat grass when their stomach is already upset, so you need to figure out what is causing his stomach to be upset - maybe he needs a different food, or more of the same food, or the same amount but spaced out so he eats more frequently. Many dogs get upset stomachs simply from their stomach being empty. Does he do it at a particular time of day? If it's in the night, first thing in the morning, or another time when it's been a while since he's eaten, it's a good indication that he's going to long between meals - a "snack" can help. What is the vomit like? If he's actually throwing up food, the food he's eating probably doesn't agree with him. If it's a small amount of foamy or yellow liquid, that's the empty stomach.