Gretzenbach es una comuna suiza del cantón de Soleura, situada en el distrito de Olten.
Limita al norte con la comuna de Niedergösgen y Schönenwerd, al este con Oberentfelden (AG) y Kölliken (AG), al sur con Safenwil (AG), al suroeste con Walterswil, y al oeste con Däniken.
En 2013 contaba con una población de 2531 habitantes.