ODBC export to Excel fails under Windows 7, Windows 8.x and Windows 10

后端 未结 2 1233
情书的邮戳
情书的邮戳 2020-12-07 03:06

I just created some code (at the bottom) from scratch that shows a simple Excel export. The code fails with an exception when database.OpenEx is called.

2条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-12-07 03:44

    I got exactly the same problem since the Windows update from 12/10/2017

    Information below solve the problem on Win7 but problem is not solved on Win10. on Win10, it is ::SQLConfigDataSource(hwndParent, fRequest, sDriver, sAttributes) which generate "Unhandled exception"

    SOLUTION for Win7:

    I have additional parameters: FIL=Excel 2000,DriverID=790 DRIVER={Microsoft Excel Driver (*.xls)}

    It seems to be solved using: FIL=Excel 12.0,DriverID=1046 DRIVER={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)}

    This will work if you have a version of Excel compatible with these parameters. You can try versions between Excel 2000 and Excel 12.0, too.

    For PC with only Excel 2000 so new parameters do not work at first : To solve the problem I install AccessDatabaseEngine_X64.exe from Microsoft Download; this enabled the use of the Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)

    Example of parameters:

    m_sDsn ="DRIVER={Microsoft Excel Driver (*.xls)};DSN='ODBC_NameXls';FIRSTROWHASNAMES=1;READONLY=TRUE;CREATE_DB="Excelfilename.xls";DBQ=Excelfilename.xls;FIL=Excel 2000;DriverID=790";
    
    m_sDsn ="DRIVER={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DSN='ODBC_NameXls';FIRSTROWHASNAMES=1;READONLY=TRUE;CREATE_DB="Excelfilename.xls";DBQ=Excelfilename.xls;FIL=Excel 12.0,DriverID=1046";
    
    m_Database->OpenEx(m_sDsn, CDatabase::openReadOnly | CDatabase::noOdbcDialog);
    

提交回复
热议问题