设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 4905|回复: 12
打印 上一主题 下一主题

[窗体] 有人在ACCESS中使用过MSFlexGrid控件的吗?

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2010-3-3 16:23:10 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
有使用过的可以交流一下
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

13#
 楼主| 发表于 2010-3-5 15:16:36 | 只看该作者
Scroll时加载很多记录也会影响的,看起来只能是用分页来解决了
12#
发表于 2010-3-4 17:39:59 | 只看该作者
本帖最后由 tz-chf 于 2010-3-4 17:41 编辑

要不先加载一屏,Scroll时再加载完。

点击这里给我发消息

11#
 楼主| 发表于 2010-3-4 15:46:52 | 只看该作者
主要是因为目前用户的习惯了ACCESS子窗体,拖动滚动条可以显示所有记录,因为要增加点击显示子窗体和图片等功能所以准备用MSF代替,现在最好是能找到和ACCESS子窗体一样的显示方式,实在不行只能像这个论坛的列表一样分页显示了
10#
发表于 2010-3-4 15:44:21 | 只看该作者
DCOUNT  数据量大会很慢的
9#
发表于 2010-3-4 15:24:44 | 只看该作者
我的比较简单,固定49行。你还要图片什么,可能是慢点。一下出3000条数据,出这么多干什么,也看不过来啊。

点击这里给我发消息

8#
 楼主| 发表于 2010-3-4 15:03:38 | 只看该作者
2.  100条左右没问题,到3000条左右需要10秒钟,这样就不切实际了,下面的代码是从示例中(FlexGrid_Demo)截取的,主要是慢在需要一个一个的循环行和列去填充
示例中的数据本来是10条,我加到3000条再测,速度就比较慢了:
Set RST = CurrentDb.OpenRecordset("SELECT * FROM qryProjects")                              'make list of Projects
    mRowCount = 2                                                                               'set initial (non-fixed) row counter
    Do Until RST.EOF                                                                            'step thru recordset
        flxgrd.AddItem RST!ProjectID & vbTab _
        & "     " & RST!ProjectName & vbTab _
        & Format(RST!StartDate, "Short Date") & vbTab _
        & Format(RST!EndDate, "Short Date") & vbTab _
        & RST!ResourceID                                                                        'and add each Project record to list
        
        SelectRange flxgrd, mRowCount, 1, mRowCount, 4                                          'show Project rows in Bold (Cols 1-4 only)
        flxgrd.CellFontBold = True
        
        ProgressLine flxgrd, vPath & "PurpleLine.bmp", vBeginDate, RST!StartDate, RST!EndDate   'draw line on grid (if any)
        
        mRowCount = mRowCount + 1                                                               'inc Row counter
        
        flxgrd.Col = 1                                                                          'set Col No for +/-/x sign
        If DCount("ID", "tblProjectTasks", "ProjectID = " & RST!ProjectID) > 0 Then             'if this Project has 1 or more Task records then
            If InStr(1, mExpand, "." & RST!ProjectID & ".") > 0 Then                            'if this .ProjectID. is in expand string then
                Set flxgrd.CellPicture = LoadPicture(vPath & "Minus Sign.bmp")                  'copy - image to Project rows (Col 1)
                ShowTasks flxgrd, RST!ProjectID, vPath, vBeginDate                              'show Tasks for this Project
            Else
                Set flxgrd.CellPicture = LoadPicture(vPath & "Plus Sign.bmp")                   'copy + image to Project rows (Col 1)
            End If
        Else
            Set flxgrd.CellPicture = LoadPicture(vPath & "Cross Sign.bmp")                      'copy x image to Project row if no Tasks data
        End If
        RST.MoveNext                                                                            'move to next Order record
    Loop
    RST.Close
    Set RST = Nothing
7#
发表于 2010-3-4 14:20:39 | 只看该作者
1,VB情况下,不需要装VB,ocx文件放在同一目录下就行。
2,多大量的数据,慢到什么程度?贴代码上来看。
3,应该可行。

点击这里给我发消息

6#
 楼主| 发表于 2010-3-4 14:16:05 | 只看该作者
顶上来

点击这里给我发消息

5#
 楼主| 发表于 2010-3-4 10:43:34 | 只看该作者
现在的一些功能用ACCESS中的子窗体实现不了,只好用MSFlexGrid来实现,现在有几个问题,知道的帮我看一下:
1.是不是要装了VB才行使用?现在看别人的示例是没问题的,但是控件不能复制,不能在新窗体中插入,如果装了VB可以使用,发布给用户的时候需要注意哪些问题?
2.加载大量数据的时候速度问题是怎么解决的?目前看了一些方法,一般都是分页形式,但如果和滚动条结合起来使用不是很好
3.目前的3种比较流行的控件中我知道VSFlexGrid是最强,但是价格不便宜,还有MSFLXGRD和MSHFLXGD两种,刚才andymark说MSFLXGRD是免费,我查了一下,好你是VSFlexGrid对MSFLXGRD向下兼容的,我想可能会先使用MSFLXGRD开发,如果将来有需要就转到VSFlexGrid,这样是不是可行?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-14 11:01 , Processed in 0.084457 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表