第一个类是CAdoRecordSet,头文件是AdoRecordSet.h,程序文件是AdoRecordSet.cpp。
第二个类是CMainFrame,头文件是MainFrame.h,程序文件是MainFrame.cpp,并且在MainFrame.h中的public中定义了CAdoRecordSet m_adoRecordSet;(即定义了第一个类的一个对象)。
第三个类是CAuditingCertView,头文件是AuditingCertView.h,程序文件是AuditingCertView.cpp,并且在AuditingCertView.cpp中加入#inclue "MainFrame.h",我在AuditingCertView.cpp中直接使用对象m_adoRecordSet时提示m_adoRecordSet没有定义,我不知道为什么,请高手指点我应该如何引用m_adoRecordSet,谢谢帮助。

解决方案 »

  1.   

    在基础版也看到你发帖了,呵呵
    看来你是想用MainFrame中的m_adoRecordSet对象ok
    通过获得你的MainFrame对象,然后通过这个主框架来获得m_adoRecordSet可以通过AfxGetMainWnd  获得你的主框架
      

  2.   

    我先CAuditingCertView中CMainFrame m_Frm;然后CString strTemp;
    strTemp.Format("%d",m_Frm.m_adoRecordSet.GetRecordCount());
    AfxMessageBox(strTemp);显示是-1为什么,其实我已经在MainFrame中打开了表,并且m_adoRecordSet.GetRecordCount()的值为4.下面的代码错在什么地方,执行后出逻辑错误
    if(m_Frm.m_adoRecordSet.IsOpen())
    {
    int i=0;
    CString strValue;
        while (!m_Frm.m_adoRecordSet.IsEOF()) {
    m_List.InsertItem(i,str[28]);
    m_List.SetItemText(i,1,(LPCTSTR)m_Frm.m_adoRecordSet.GetCollect("username",strValue));
    m_List.SetItemText(i,2,(LPCTSTR)m_Frm.m_adoRecordSet.GetCollect("userpwd",strValue));
            m_List.SetItemText(i,3,(LPCTSTR)m_Frm.m_adoRecordSet.GetCollect("userable",strValue));
    m_List.SetItemText(i,4,(LPCTSTR)m_Frm.m_adoRecordSet.GetCollect("usersex",strValue));
    m_List.SetItemText(i,5,(LPCTSTR)m_Frm.m_adoRecordSet.GetCollect("useraddr",strValue));
    m_List.SetItemText(i,6,(LPCTSTR)m_Frm.m_adoRecordSet.GetCollect("userdep",strValue));
    m_List.SetItemText(i,7,(LPCTSTR)m_Frm.m_adoRecordSet.GetCollect("usertitle",strValue));
    m_List.SetItemText(i,8,(LPCTSTR)m_Frm.m_adoRecordSet.GetCollect("useremail",strValue));
    m_List.SetItemText(i,9,(LPCTSTR)m_Frm.m_adoRecordSet.GetCollect("userphone",strValue));
    m_List.SetItemText(i,10,(LPCTSTR)m_Frm.m_adoRecordSet.GetCollect("userinfo",strValue));
            m_Frm.m_adoRecordSet.MoveNext();
    i++;
    }
    }
    else
    msg.Format("abcd");
      

  3.   

    编译记录集,或设置客户游标 adClienCursor