本帖最后由 okou0696 于 2009-09-20 19:18:47 编辑

解决方案 »

  1.   

    //#3088多是由于字段错误引起的。
    //data应该是Access关键字,
    //select * from recordmsg where [data] <='2009-09-13' 
    //data前后应该要有[],改一下你的格式化语句。
      

  2.   

    //不论是data还是date都是Access关键字,安全起见,格式化SQL语句的时候,在表名,字段名等处都加上[]
      

  3.   

    感谢“lfchen”,的确这样写才是规范的。我已经更改。但测试结果是,问题不是出在这个地方。AfxMessageBox("open开始");//这里可以正确弹出 m_pRecordset->Open( (_variant_t)sql,_variant_t((IDispatch*)this->m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText); AfxMessageBox("open完成");//到这里无法弹出
      

  4.   

    m_pRecordset->Open( (_variant_t)sql,_variant_t((IDispatch*)this->m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText); //执行上句的时候,弹出#3088错误,说明SQL语句中字段或者表名有错误。请你仔细检查数据库,确认表名和字段名正确。一般做法是将格式化的SQL语句直接放到数据库工具中执行。
      

  5.   

    3088错误,我也知道是SQL语句的错误,但我一直都在检查,没有发现什么。
    所以以为是库指针的问题,我反复的尝试,包括删除单条数据。
    甚至重写的那个部分的代码我以为是VC的问题。问题已经解决,是“DATE”写成“DATA”的问题。lfchen兄弟,我很想搂着你哭一场啊。我卡在这个地方5个小时了。再次感谢lfchen!!!