您的位置:程序门 -> vc/mfc ->



把access数据库中的数据导出到EXECl表中问题。


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


把access数据库中的数据导出到EXECl表中问题。
发表于:2007-09-28 09:45:33 楼主
我用vc+access数据库开发一个管理系统,用的是access数据库。我想把数据库中的table1表中的一些符合我要求的字段导出到EXECl表中。假设table1中的字段为:
    number         name     age     address
    00001002       qq       18         fdfd
    00001             ssd     20         dsds
    00002004       dfd     17         fdfds
    00001008       dsa     25         dcasd
我想把表中的number字段的值的前5位是00001的数据导出到EXECl表中,请问用vc怎么实现,或者那位前辈做过这方面的东西,给一个可以参考的例程。非常感谢!
发表于:2007-09-28 11:52:121楼 得分:0
access没用过,sql的这样的代码应该有很多啊
发表于:2007-09-28 11:59:482楼 得分:0

select   *

from   tasks

where   left(tarea,3)   =   '00001 '

发表于:2007-09-28 12:41:343楼 得分:0
http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx#vsofficedev_topic3
http://support.microsoft.com/kb/196776/en-us/
http://support.microsoft.com/kb/184663/
how   to   automate   excel   to   create   and   format   a   new   workbook   using   c++   .net   and   mfc
http://support.microsoft.com/default.aspx?scid=kb;en-us;308292&product=xlw2k
发表于:2007-09-28 13:38:064楼 得分:0
导入到dbf,文本导进access都做过
但是excel没有做过
发表于:2007-09-28 13:55:545楼 得分:0
jfvoid   cr2xdlg::exportexcel(_recordsetptr   &prs)
{
long   lcount   =   m_prs-> getrecordcount();
if   (lcount   >   65536)
{
afxmessagebox( "excel一次最多导出65536行,您查询的记录已经到了 "+m_strcount+ "行! ");
return;
}
using   namespace   xls;
colevariant   vopt(disp_e_paramnotfound,   vt_error);
        _application   oapp;
        oapp.createdispatch( "excel.application ");
        if   (!oapp)
        {
                afxmessagebox( "本机没有安装EXECl! ",   mb_iconinformation);
                return;
        }
oapp.setvisible(true);
        workbooks   obooks   =   oapp.getworkbooks();
        _workbook   obook   =   obooks.add(vopt);
        worksheets   osheets   =   obook.getworksheets();
        _worksheet   osheet   =   osheets.getitem(colevariant((short)1));
        range   orange;
//transfer   the   data   in   the   recordset   to   the   worksheet
        orange   =   osheet.getrange(colevariant( "a2 "),   vopt);
orange.copyfromrecordset((lpunknown)   prs,   vopt,   vopt);
//add   the   field   names   to   row   1
long   ncol   =   prs-> fields-> count;
        for   (long   i   =   0;   i   <=   ncol-1;   i++)
        {
                orange   =   osheet.getrange(colevariant( "a1 "),   vopt);
                orange   =   orange.getoffset(vopt,   colevariant(i));
                orange.setvalue2(_variant_t(prs-> fields-> getitem(colevariant(i))-> name));
        }
        //format   the   worksheet
        orange   =   osheet.getrange(colevariant( "a1 "),   vopt);
        orange   =   orange.getresize(colevariant((short)1),   colevariant(ncol));
        font   ofont   =   orange.getfont();
        ofont.setbold(colevariant((short)true));
        orange   =   orange.getentirecolumn();
//     orange.autofit();
range   resizedrange;
interior   interior;
borders   borders;
resizedrange   =   osheet.getrange(colevariant( "a1 "),   vopt);
resizedrange   =   resizedrange.getresize(_variant_t(short(1)),   _variant_t(ncol));
interior   =   resizedrange.getinterior();
interior.setcolorindex(_variant_t((short)35));
borders   =   resizedrange.getborders();
borders.setweight(_variant_t((short)2));   //   xlthin   =   2
        //make   excel   visible   and   give   the   user   control
        oapp.setvisible(true);
        oapp.setusercontrol(true);
}


快速检索

最新资讯
热门点击