设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2030|回复: 7
打印 上一主题 下一主题

[与其它组件] 求教:有没有比这个方法运行速度更快的方法!

[复制链接]
跳转到指定楼层
1#
发表于 2003-5-27 03:51:00 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
我制作了一个考勤表输入,为统计每种出勤情况,我做了如下函数:并在查询中使用此函数,但运行时很慢。(每个日期[即1-31号]为一个字段。)有谁有更好的方法。不改变表结构思路的方法!
Function KSum(DD As String, ID As Integer) As Integer

Dim h, J As Integer
J = 0
For h = 1 To 31
On Error GoTo ER
'     MsgBox (DLookup("[" & CStr(h) & "]", "考勤表SUB", "[ID]=" & ID))
    kk = IIf(DLookup("[" & CStr(h) & "]", "考勤表SUB", "[ID]=" & ID) = DD, 1, 0)

    J = J + kk
Next h

KSum = J
Exit Function
ER:
If Err() = 94 Then
    kk = 0
Else
    MsgBox (Err())
End If
Resume Next

End Function


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2003-5-27 05:37:00 | 显示全部楼层
我这正常,我的系统是access2000 +win98或win2000高级版!
3#
 楼主| 发表于 2003-5-27 05:38:00 | 显示全部楼层
点击窗体上的[预鉴]不行吗!
4#
 楼主| 发表于 2003-5-27 17:55:00 | 显示全部楼层
DAO的方法我刚才测试了,效果非常好,比原先速度提高了13倍多。(使用时要先引用一下ADO!)至于在查询中用IIF()的方法,我试过了,跟用我的函数,大至上没什么明显的区别!(因为我对DAO、sol查询语名一点都不懂)。
不知道各位还有没有其它方法。不过,在速度上是一方面。在思路上又是另一方面,思路可是程序的生命!请大伙发挥一下你的的思路吧!
5#
 楼主| 发表于 2003-5-29 05:22:00 | 显示全部楼层
班主可真行。其实我所用的与直接用IIF()写没区别:KNum()+KNum() 的方法 不过速度很慢。用数组的方法没有想到过!再次谢谢!又多长的见识!
Function KNum(JR As String, Dh As String) As Integer
If JR = Dh Then
    KNum = 1
Else
    KNum = 0
End If

End Function
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-27 20:47 , Processed in 0.093463 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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