Although you have chosen a best answer already, I hope you see this answer:
Some time ago we had a woodstove that back drafted all day long while we were at work because the thing-a-ma-jig on the chimney got stuck facing the wind. I aired out the house but was nauseated by the wood smoke smell. I called the fire department for advise on how to get rid of smoke smell. They offered to come over and spray the house. Wow, my taxes, working FOR me. YAY.
So, the Fire Dept came and sprayed. We had to leave for two hours and when we returned, there was NO smoke smell, just the smell of the spray for a day. They used Ozium.
Fast forward....I was in the market for a used car and found the perfect one, BUT, the former owner was a smoker. Remembering the Ozium spray, I bought the car. I washed the upholstery and the carpeting, wiped down all of the inside surfaces. Then, I sprayed with Ozium, left the car running with the fan on so the Ozium could circulate through the air ducts for a few minutes, then I turned off the engine and shut the doors over night. The next day the smoke smell was very faint, so I repeated the process. This eliminated the smoke smell and you would NEVER know my car was formerly owned by a chain smoker!!
You can buy Ozium at an auto parts store for $5.99. I swear by this stuff as it works, it really does.