您的位置:程序门 -> vb -> 基础类



为什么我一添加这段代码,程序就会没有响应


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


为什么我一添加这段代码,程序就会没有响应[已结贴,结贴人:lad1984]
发表于:2007-05-02 08:26:37 楼主
private   sub   combo1_click()
sstab1.tab   =   0
cha   =   "select   *   from   项目管理表   where   proj_type= "   &   combo1.text   &   "   order   by   id "
call   gridshow(1,   cha)

end   sub


combo1我定义了四项
        combo1.list(0)   =   "国际级 "
        combo1.list(1)   =   "国家级 "
        combo1.list(2)   =   "省市级 "
        combo1.list(3)   =   "企业合作 "

gridshow(1,cha)
是mshflexgrid显示的函数
数字1表示,显示第一页
cha是字符串

运行时,只要我选择combobox其中一项,程序就没有响应,为什么呢
发表于:2007-05-02 09:40:491楼 得分:0
call   gridshow(1,   cha)里面的循环?卡住了?
发表于:2007-05-02 10:08:562楼 得分:0
你把gridshow的代码贴出来
发表于:2007-05-02 11:33:163楼 得分:0
估计是在gridshow函数中又设置了combo1的值而触发了combo1_click事件,因此产生死循环~~
发表于:2007-05-02 14:34:254楼 得分:0
'*********分页显示的函数***********
    private   function   gridshow(pageno   as   integer,   b1   as   string)
    on   error   resume   next
       
   
    call   sql1                   ‘数据库连接
bbak   =   b1
c_proj.open   b1
while   not   c_proj.eof

    pagesum   =   pagesum   +   1
    c_proj.movenext
    wend
    c_proj.movefirst
    pagesum   =   cint(pagesum   /   20)   +   1
   
 
    c_proj.pagesize   =   20
    c_proj.absolutepage   =   pageno
    pagesum   =   c_proj.pagecount


    with   mshflexgrid1(sstab1.tab)
    .clear
    .rows   =   c_proj.pagesize   +   2
    .cols   =   7
    .textmatrix(0,   1)   =   p(0)
    .textmatrix(0,   2)   =   p(1)
    .textmatrix(0,   3)   =   p(2)
    .textmatrix(0,   4)   =   p(3)
    .textmatrix(0,   5)   =   p(4)
    .textmatrix(0,   6)   =   p(5)
                for   i   =   1   to   c_proj.pagesize
                        if   c_proj.eof   then
                                if   cpage   >   pagesum   then
                                            msgbox   "没有可供显示的记录!请确认! "
                                            goto   close1
                                end   if
                        end   if
                        .textmatrix(i,   0)   =   " "   &   cstr((pageno   -   1)   *   20   +   i)                           '第一行显示的为序号
                        .textmatrix(i,   1)   =   " "   &   c_proj.fields(pb(0))
                        .textmatrix(i,   2)   =   " "   &   c_proj.fields(pb(1))
                        .textmatrix(i,   3)   =   " "   &   c_proj.fields(pb(2))
                        .textmatrix(i,   4)   =   " "   &   c_proj.fields(pb(3))
                        .textmatrix(i,   5)   =   " "   &   c_proj.fields(pb(4))
                          .textmatrix(i,   6)   =   " "   &   c_proj.fields(pb(5))
                        c_proj.movenext
                next   i

               
               
               
                txtgopage   =   cpage
                  txtshow   =   "共 "   &   pagesum   &   "页 "
close1:             c_proj.close
    end   with
    end   function


我设置的首页     下一页   上一页     的按钮,调用此函数均无问题
发表于:2007-05-02 14:35:185楼 得分:0
我没有在gridshow函数里设置过combo1
发表于:2007-05-02 15:53:376楼 得分:60
你单步调试一下,看看循环那里是否有问题

另外
"select   *   from   项目管理表   where   proj_type= "   &   combo1.text   &   "   order   by   id "
改为
"select   *   from   项目管理表   where   proj_type= ' "   &   combo1.text   &   " '   order   by   id "
试试
发表于:2007-05-02 16:46:537楼 得分:0
数据库建表时尽量使用英文,不要使用中文。
发表于:2007-05-02 17:24:248楼 得分:0
另外
"select   *   from   项目管理表   where   proj_type= "   &   combo1.text   &   "   order   by   id "
改为
"select   *   from   项目管理表   where   proj_type= ' "   &   combo1.text   &   " '   order   by   id "


已经试过,还是这样
发表于:2007-05-02 17:35:119楼 得分:0
已经解决了
"select   *   from   项目管理表   where   proj_type= ' "   &   combo1.text   &   " '   order   by   id "

证实是这个问题,开始的时候 " '   order   by   id "       '与order   之间忘记加空格了

谢谢


快速检索

最新资讯
热门点击