(Apologies, I would add this as a comment to the accepted answer, but I'm new here.)
I would also like to add to the above list:
- Your .msi file was downloaded to a drive other than c:\. This applies to the actual storage device the .msi is located on, not just the path. If you have a junction from d:\foo to c:\foo and your .msi is d:\foo\haha.msi, msiexec will fail and emit "Error: Failed to access database c:\foo\haha.msi" in the log.
(While this would likely never happen in the OP's example, other folks searching for msiexec answers may land here as I did.)