本帖最后由 lovegame3 于 2012-11-12 08:50:36 编辑

解决方案 »

  1.   

    VC Ado调用Execute 时IDispatch error #3119http://blog.const.net.cn/a/1479.htm
    VC ADO数据库编程入门http://blog.const.net.cn/a/5638.htm
    vc中ado操作时提示类型不匹配错误解决办法http://blog.const.net.cn/a/15669.htm
      

  2.   

    select * from 餐饮管理 where 菜单=“+鱼香肉丝+”; 
    改成:
    select * from 餐饮管理 where 菜单='鱼香肉丝'; 
    字符型加单引号,日期型加#号,数字型不加任何符号,比如日期型:
    CString str;
    str="select * from 餐饮管理 where 日期=#2012-11-12#"; 
      

  3.   

    很详细,谢谢,可现在的问题弹出窗口说:Microsoft Access数据库引擎找不到输入表或查询“abcd”…………我把餐饮管理表名改成abcd调试了…………
      

  4.   

    嗯,本人菜鸟一枚。谢谢。可新的问题,弹出窗口说:Microsoft Access数据库引擎找不到输入表或查询“abcd”…………我把餐饮管理表名改成abcd调试了…………
      

  5.   

    那是你得重新生成一个数据源的驱动了(如果你用DSN来做数据源),也就是数据源里的数据库及表名加上字段都得一致才行,不能只改一个,其它的不改
      

  6.   

    可是我是用ado连接程序文件夹下的access数据库,代码如下AfxOleInit();

    CString appPath;
    GetModuleFileName(NULL,appPath.GetBufferSetLength(255+1),255);
    appPath.ReleaseBuffer();
    int len = appPath.ReverseFind('\\') + 1;
    CString sysPath = appPath.Left(len);

    HRESULT hr;
    m_ConnState=FALSE;

    try
    {
    hr=m_pCon.CreateInstance("ADODB.Connection");

    if(SUCCEEDED(hr))
    {
    CString dbPath="Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+sysPath+"餐饮.accdb"; hr=m_pCon->Open(_bstr_t(dbPath),"","",adModeUnknown);

    if(SUCCEEDED(hr))
    m_ConnState=TRUE;
    }
    }
    catch(_com_error e)
    {
    CString errorMessage;
    errorMessage.Format("连接数据库错误\r\n错误信息:%s",e.ErrorMessage());
    AfxMessageBox(errorMessage);
    }
      

  7.   

    改正sql语句之后发现问题还是存在,自己检查后发现是别的地方的问题,感兴趣的朋友可以看看我最近发的、关于下拉列表控件与列表框响应的帖子。问题解决,结贴给分。吃一堑,长一智。编程要小心再小心。