双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

使用ODBC读取Excel表格出现错误

NAME15122 NAME15122 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我在网上看到的用VC对EXCEL表的操作,他先是自己创建了一个EXCEL,然后再对其进行读取,可以操作成功.但是我自己新建一个Excel表 credit.xls,进行读取,将程序中的文件名,表名,都改为如下,编译通过但是读取时老是出现Microsoft Jet数据库引擎找不到对象 "credit ",请确定对象是否存在,并正确地写出了它的名称和路径!
这个错误总是不能解决,请各位大侠帮我看看,非常感谢!
void CQueryView::ReadExcel()
{
CDatabase database;
CString sSql;
CString sItem1, sItem2;
CString sDriver;
CString sDsn;
CString sFile = "C:\\credit.xls ";// 将被读取的Excel文件名

// 检索是否安装有Excel驱动 "Microsoft Excel Driver (*.xls) "
sDriver = GetExcelDriver();
if (sDriver.IsEmpty())
{
// 没有发现Excel驱动
AfxMessageBox( "没有安装Excel驱动! ");
return;
}
// 创建进行存取的字符串
sDsn.Format( "ODBC;DRIVER={%s};DSN= ' ';DBQ=%s ",sDriver,sFile);
TRY
{
// 打开数据库(既Excel文件)
database.Open(NULL, false, false, sDsn);
CRecordset recset(&database);
// 设置读取的查询语句
sSql = "SELECT * FROM credit ";

//执行查询语句
recset.Open(CRecordset::forwardOnly, sSql, CRecordset::readOnly);

// 获取查询结果
while (!recset.IsEOF())
{
//读取Excel内部数值
recset.GetFieldValue( "Name ", sItem1);
recset.GetFieldValue( "Age ", sItem2);

CString strMsg;
strMsg.Format( "Name:%s,Age:%s ",sItem1,sItem2);
AfxMessageBox(strMsg);
// 移到下一行
recset.MoveNext();
}
// 关闭数据库
database.Close();
}
CATCH(CDBException, e)
{
// 数据库操作产生异常时...
AfxMessageBox( "数据库错误: " + e-> m_strError);
}
END_CATCH;
}
...全文
评论 8
收藏 已收藏
分享
返回顶部
NAME15122
界面 15,976 成员 115,866 内容