急MFC中用ODBC动态建立数据源后连不上数据库怎么处理?

急!MFC中用ODBC动态建立数据源后连不上数据库怎么办?高手指点?
建立另一个基于对话框的工程,能够编译过去,且能运行,在对话框的Dlg的构造函数中添加
BOOL bODBC = SQLConfigDataSource(NULL,ODBC_ADD_DSN,TEXT("Microsoft Access Driver (*.mdb)\0"),
  TEXT("DSN=Knowledge\0DBQ=KnowledgeSource.mdb"));
  if(!bODBC)
  {
  AfxMessageBox(TEXT("创建数据源失败"));
  exit(0);
  }
  if(!bODBC)
  {
  ::AfxMessageBox(TEXT("32位数据源配置错误"));
  }
然后在一个OnInitDialog函数中添加
db=new CDatabase;
 
  try
  {
 
  db->OpenEx(TEXT("DSN=Knowledge"),CDatabase::noOdbcDialog);
 
  }
  catch(CDBException * dbErr)
  {
  CString temp=TEXT("数据库连接失败,具体原因:\n");
  MessageBox(temp+dbErr->m_strError,TEXT("警告"),MB_YESNO|MB_ICONEXCLAMATION);
  dbErr->Delete();
  exit(1);
  }
最后在一个处理函数中添加
CRecordset *m_pset = NULL;
  m_pset->Open(CRecordset::dynaset,strtmp,CRecordset::none);
 
  strtmp.Format(TEXT("%s"),m_pset->GetRecordCount());
  AfxMessageBox(strtmp);
  CODBCFieldInfo fieldinfo; 
  m_pset->GetODBCFieldInfo(short(2),fieldinfo);
  columnname2 = fieldinfo.m_strName;
  m_pset->GetODBCFieldInfo(short(3),fieldinfo);
  columnname3 = fieldinfo.m_strName;
 
  while(!m_pset->IsEOF())
  {
  m_pset->GetFieldValue(short(2),vkey);
  m_pset->GetFieldValue(short(3),answer);
  vkey.TrimRight();
  answer.TrimRight();
  if(m_strText.Find(vkey)>0)
  {
 
  m_strText+=answer;
  break;
  }
  m_pset->MoveNext();
 
  }
  //CString strtmp = TEXT("select vkey from answer where vkey like")+;
 
  m_strText+=pwzText;
  UpdateData(FALSE);
  m_pset->Close();
当我调试的时候,运行到m_pset->Open(CRecordset::dynaset,strtmp,CRecordset::none);时出现错误,错误显示好像是:
ODBC驱动程序:Microsoft Access找不到E:\Workspace\develop\C++Test\Toursit\Toursit\KnowledgeSource.mdb
------解决方案--------------------
检查下路径设置对不对,库被没被包含进去。