Office中国论坛/Access中国论坛
标题:
[求助]使用ADO速度还是慢
[打印本页]
作者:
gdfsslec
时间:
2007-4-9 22:46
标题:
[求助]使用ADO速度还是慢
[attach]23887[/attach]
在上面的例子中,自定义函数的计算速度很慢(需要这个函数,原来的有循环计算的,为了避免问题复杂化,这里简化了)。
OPEN这句对速度影响最大,其次是DCOUNT。
有什么办法可以解决呢?请高手指导!
谢谢先!
作者:
wwwwa
时间:
2007-4-9 23:02
'If DCount("*", "查询结果") = 0 Then->
If rs.EOF Or rs.BOF Then
作者:
gdfsslec
时间:
2007-4-10 00:10
谢谢wwwwa大师!速度比DCOUNT要快的多!
第一个影响最关键的有办法吗?
请继续指教!
作者:
gdfsslec
时间:
2007-4-11 03:39
请高手指点一二,比如其他方向
作者:
andymark
时间:
2007-4-11 04:00
把具体要求说一下,实现查询也许有更好的方法
作者:
gdfsslec
时间:
2007-4-11 06:16
谢谢ANDYMARK大师先!
我要计算最长超期天数,方法是先计算出超期金额(这个容易实现),然后根据该客户的放帐天数,计算起始应付日期,接着倒算达到超期金额的最后一笔出货,找到这一天,就计算出最长的超期天数了。倒算是用循环语句实现的,无法在查询中用合计函数形成可用表达式,因此使用了自定义函数。开始用了DLOOKUP和DSUM等,更慢。现在是用ADO调用查询,然后在查询记录集中使用循环测算,但是速度还是慢。主要是反复打开这个查询造成的,不知道对不?
改变数据结构可以搞掂,但对使用者会带来一点麻烦。
不知道是否表达清楚了。
作者:
andymark
时间:
2007-4-11 06:26
直接用查询应能实现的, 为方便理解,把结果贴上来
作者:
gdfsslec
时间:
2007-4-11 06:55
If cq > 0.01 Then
inta = 0
inidq = Now() - Me.»õµ½¸¶¿îÌìÊý
rs.Open "²éѯ½á¹û", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rs.MoveFirst
inida = rs("·¢ÉúÈÕÆÚ")
rs.MoveLast
Do Until rs.Fields("·¢ÉúÈÕÆÚ") < inidq
inid = rs("·¢ÉúÈÕÆÚ")
If inid = inida Then
MsgBox FormatDateTime(inid, vbLongDate) & "֮ǰûÓгö»õ¼Ç¼"
Exit Do
End If
rs.MovePrevious
Loop
Do Until inta >= (cq - 0.01) * 10000
inta = inta + rs("³ö»õ½ð¶î")
inid = rs("·¢ÉúÈÕÆÚ")
If inid = inida Then
MsgBox FormatDateTime(inid, vbLongDate) & "֮ǰûÓгö»õ¼Ç¼"
Exit Do
End If
rs.MovePrevious
Loop
strsqlcq = "select * from ²éѯ½á¹û where ·¢ÉúÈÕÆÚ<= #" & inidq & "# and ·¢ÉúÈÕÆÚ>= #" & inid & "# and ³ö»õ½ð¶î<>0"
Me.³¬ÆÚ²éѯ×Ó´°Ìå.Form.RecordSource = strsqlcq
Me.³¬ÆÚ²éѯ×Ó´°Ìå.Requery
MsgBox FormatDateTime(inid, vbLongDate) & "֮ǰûÓгö»õ¼Ç¼"
Else
strWhere = ""
strWhere = strWhere & "([¿Í»§Ãû³Æ] like '" & "³õʼ×Ó´°Ìå²»ÏÔʾÈκÎÄÚÈÝ" & "')"
Me.³¬ÆÚ²éѯ×Ó´°Ìå.Form.Filter = strWhere
Me.³¬ÆÚ²éѯ×Ó´°Ìå.Form.FilterOn = True
End If
作者:
gdfsslec
时间:
2007-4-11 06:57
不知道为什么会乱码[em06]
您说的结果是这个吗?这样的循环一共有8个。
作者:
andymark
时间:
2007-4-11 07:07
不是,是查询后的最终结果
作者:
zxzx2733
时间:
2007-4-11 08:56
在VBA中复时的输入法与在网页中粘贴时的输入法相同就不会出现乱码
作者:
yori2007
时间:
2008-1-26 11:12
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3