1)ACCESS建立了数据库,配了数据源mydb。数据库中有多个表:表1,表2....。
2)VC6.0建立了基于对话框的程序,上面有若干EDIT控件和BUTTON控件用于显示和操作。
         CDatabase m_db;
         dbset m_rs;//class dbset : public CRecordset
3)BOOL CDbtestDlg::OnInitDialog()函数中
m_db.Open(_T("mydb"));
m_rs.m_pDatabase=&m_db;
m_rs.Open();//打开的是哪个表的记录集?我想打开“表2”如何操作?
4)要实现查询表2,具体功能实现为:编辑框中输入学号,点击查询按钮,在另一编辑框中显示姓名。
void CDbtestDlg::OnFind()//对应查询按钮的单击消息响应函数
UpdateData(TRUE);
CString str_findID;
CString tempstr;
tempstr="m_clientID";//表2的m_clientID字段,代表学号
str_findID=tempstr+"='"+m_find_ID+"'";//CString m_find_ID为输入编辑框对应的变量
m_rs.m_strFilter=str_findID;
m_rs.Requery();
m_name=m_rs.m_name;//表2的m_name字段,代表姓名,编辑框对应CSting m_name变量显示查询结果
m_rs.m_strFilter="";
UpdateData(FALSE);
//运行时,单击查询按钮,弹出一个对话框,提示:参数不足,期待是1。
5)不知是否把问题表述清楚,希望高手帮忙。另外关于CDatabase和CRecordset派生类
数据库的操作对于打开、关闭、Requery()有哪些注意的地方啊。比如:是不是打开之后,处理完成就必须关闭。

解决方案 »

  1.   

    m_rs.Open();//打开的是哪个表的记录集?我想打开“表2”如何操作?
    打开的是表2,因为用MFC ClassWizard建立记录集派生类时,选的是表2.
      

  2.   

    问题解决了,表中的字段名写错了,应该为:clientID
      

  3.   

    问题解决了,表中的字段名为:clientID,我在程序中写成了m_clientID了,将程序中的m_clientID改为clientID即可。