Instead of yelling no at him try making a shaker can, a pop can filled with pennies and shaking it, or a whistle. Some noise that is not as common. It just usually works better. You can teach it "leave it" pretty easily...just takes a little time and patience. The way I do it it to start out with something not too interesting to the dog (magazine, remote control) and walk it by the objects weaving it around them and saying "leave it" if it looks at it or sniffs it, when it looks at you treat and praise it. Then as you do this work your way up to more interesting objects. Next being the lid of a can of dog treats, a toy...then finally to dog treats or food, this last one can be a booger!

It helps too if you keep a treat in your hand and get the dogs attention with it to help it ignore the items if your having trouble with it. Your little puppy peeing so much isn't normal. There are bladder diseases and such it could have so you might want to get it checked. But, I don't know if maybe it is normal for your breed of dog. Good luck though!