this isn't really an answer to your question but...
I have found that using ODBC/OLEDB solutions with Excel to be a bit flaky to say the least.
This is independent of the programming languages I have used a lot in C#, Fortran, SQL Server. The Issues mostly stem from the fact that Excel is a spread sheet and not a relational database. If one wants to overwrite in SQL ones uses an update query not an insert query.
What I have found generally to be the case is that Excel based solutions can be much more efficient, and easy to code. In your problem write an excel VBA subroutine that fills the spreadsheet with data passed as a parameter.
Then have this subroutine in a template excel file that get copied by the fortran code to the output location from some fixed location then call the the function using excel automation.
There is a bit of faff with the arguments etc (and closing excel when you are finished). but generally there is a much finer degree of control using this type of solution, and your not bound to pretending that excel is a database, the syntax will be a lot simpler also.
If your like I will see if I can bodge something together to demonstrate. What version of excel are your fighting with?
Carl