Ok, so I was going to do this job this past weekend. But I was able to fix the problem without taking anything apart.
I had an extra door latch from my passenger side door that was replaced from my accident last year. I got all the tools ready to tear apart the door, but thought I would check out the spare latch I had first. So while inspecting it, I noticed a buildup of grease & dirt around the switch. So I wondered if that may have been causing the switch to remain stuck in the "door closed" position. So I took out a can of contact cleaner and went to town on the area below the latch where the micro switch is. While squirting the cleaner & working the latch back and forth, my light started flickering. So I closed the door and tried to open it. The light didn't work, but if I kicked the door, bingo, I had lights. SO I kept spraying and working the latch and now I have a fully functional door switch
As a side note, if you look in the first two pictures, you will see the plastic cover over the door latch. It is worn and not seated properly around the latch. This caused the latch to not open fully when the door was opened. It opened enough to allow the door to open, but did not go down enough to close the switch. I used a small scalpel (SP?) knife to cut that plastic cover off the latch so it would not interfere with the full travel of the latch. This also could cause the switch to not become engaged? Maybe try forcing the latch down with a screwdriver to see if it will close the switch that way.
Here are some pictures for reference:
This is the spare door latch that I was going to remove the switch from. The switch is located at the bottom of the latch
Here is a better shot of the plastic cover on the latch interfering with the full travel of the latch:
Here is the back side of the latch. You can see how dirty it was. The gunk was keeping the switch from opening & closing properly:
Here is where I sprayed the contact cleaner. I also used a screwdriver to lock & unlock the latch to get the cleaner working.
Now this is just my experience. I realize that this may not work on all cars as the switch may actually be defective. But it is worth a try to see if yours is also caused by a stuck latch or stuck switch and not a broken switch.