enlaihe
恩来贺
2017-10-24 08:35

问问MFC中利用ODBC打开Excel出错的问题!!???

20
  • excel
  • odbc
  • spreadsheet
各位大拿好,最近使用odbc对execl操作出现了问题,却一直没有找到解决办法,希望有人能够帮助看看,谢谢各位了。
事情是这样,以前是可以用的,电脑的win10系统升级了后,使用的wps也升级了。没有装微软的execl.
 出现了如下错误:
 ![图片说明](https://img-ask.csdn.net/upload/201710/24/1508833944_486846.png)
非法的连接串属性FIRSTROWHASNAMES

非法的连接串属性CREATE_DB
非法的连接串属性FIRSTROWHASNAMES
非法的连接串属性CREATE_DB
非法的连接串属性FIRSTROWHASNAMES
非法的连接串属性CREATE_DB
非法的连接串属性FIRSTROWHASNAMES
非法的连接串属性CREATE_DB
非法的连接串属性FIRSTROWHASNAMES
部分代码如下:
if (m_bExcel) // If file is an Excel spreadsheet
{
m_Database = new CDatabase;
GetExcelDriver();
m_sDsn.Format(L"DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=%s;DBQ=%s", m_sExcelDriver, m_sFile, m_sFile);
if (Open())
{
if (m_bBackup)
{
if ((m_bBackup) && (m_bAppend))
{
CString tempSheetName = m_sSheetName;
m_sSheetName = L"CSpreadSheetBackup";
m_bAppend = false;
if (!Commit())
{
m_bBackup = false;
}
m_bAppend = true;
m_sSheetName = tempSheetName;
m_dCurrentRow = 1;
}
}
}
}

在执行Open()时出的错,open函数如下:
bool CSpreadSheet::Open()

{
if (m_bExcel) // If file is an Excel spreadsheet
{
BOOL bOK = m_Database->OpenEx(m_sDsn, CDatabase::noOdbcDialog);
// Open Sheet
m_rSheet = new CRecordset( m_Database );
m_sSql.Format(L"SELECT * FROM [%s$A1:IV65536]", m_sSheetName);
try
{
m_rSheet->Open(CRecordset::forwardOnly, m_sSql, CRecordset::readOnly);
}
catch(...)
{
CString csErr = GetLastError();
delete m_rSheet;
m_rSheet = NULL;
m_Database->Close();
return false;
}(部分代码)

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

8条回答