按照教材上说的:
BOOL CADOTest1Dlg::OnInitDialog()
{
 CDialog::OnInitDialog();
 HRESULT hr;
 try
 {
  hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
  if(SUCCEEDED(hr))
  {
   hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;
   Data Source=test.mdb","","",adModeUnknown);///连接数据库
   //上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,
   //需要改为:Provider=Microsoft.Jet.OLEDB.3.51;
  }
 }
 catch(_com_error e)///捕捉异常
 {
  CString errormessage;
  errormessage.Format("连接数据库失败!rn错误信息:%s",e.ErrorMessage());
  AfxMessageBox(errormessage);///显示错误信息
 } 我写了以上代码,编译后出现问题:
1>d:\my documents\visual studio 2008\projects\learning access\learning access\learning access.cpp(45) : error C2065: “m_pConnection”: 未声明的标识符
我已经在stdAfx.h中写了
#import "c:\program files\common files\system\ado\msado15.dll" \
 no_namespace \
 rename ("EOF", "adoEOF")
怎么解决呢?急!!!

解决方案 »

  1.   

    可算碰见一个会的.头文件里面有一个 m_pConnection 变量,没抄上.
      

  2.   

    m_pConnection这个成员没有定义;
    检查有没有包含头文件
      

  3.   

    奇怪,我在stdafx.h中加上下面这句
    _ConnectionPtr m_pConnection;
    编译后提示有重定义,然后我又把这句删掉,再编译居然通过了,没有一个错误,但是一运行,结果是:
    连接数据库失败!
    错误信息:未指定的错误。
    这又是为什么啊?
    是不是vs2008的问题?
      

  4.   

    catch(_com_error e)///捕捉异常
     {
     
      AfxMessageBox(e.Description());///显示错误信息
     }  
    看看出错信息
      

  5.   

    m_pConnection这个变量在CADOTest1Dlg类的头文件中声明了吗?
      

  6.   

    现在都没有问题了,m_pConnection已经声明过了,用如下语句:
    catch(_com_error e)///捕捉异常
     {
     
      AfxMessageBox(e.Description());///显示错误信息
     }   
    运行后出现提示为:
    找不到可安装的ISAM。
    急啊,大大们请多多留言。
      

  7.   

    连接字符串不对吧
    看这里
    http://blog.csdn.net/zyq5945/archive/2010/05/13/5586423.aspx