Your data is still there, don't reformat.
There are lots of things you can try to recover this situation.
Backup | dd
First, use dd to copy your entire drive to another drive as backup, BEFORE doing anything else. This way you'll have something to revert to in case you take a wrong turn.
dd if=/dev/hda conv=sync,noerror bs=64K | gzip -c >
Partition Recovery | TestDisk
The Linux utility "TestDisk" has shown to be quite helpful to me for this kind of thing. Give that a try first.
Booting | Super Grub Disk
You may find Super Grub Disk profoundly helpful if you get your partitions in good shape, but just can't boot anymore.
(edited) Booting | Windows Installation Disk
You can use the Windows Installer to "repair" your Windows installation so it boots again. Then you can fix grub any number of ways. A solution I actually prefer is to just use "EasyBCD" to create an entry point to Grub using the Windows 7 boot manager (which is atypically excellent MS sw).
Recovering if using GPT | gdisk
I've also found gdisk to be outstanding, but if you're not using a gpt partition scheme, then that probably won't help you at all. Though, if you're running out of luck, give it a try, not sure if it'll work with MBR at all.