我需要根据一些实验用Excel中的一个非常简单的哈希函数,只是一个字节值的总和应该这样做:加快MS ACCESS VBA脚本遍历字节字符串
Function HashPart(strVal As String) As Long
' work with byte representation for speed
Dim b() As Byte
b = strVal
Dim result As Long
result = 0
For i = 0 To UBound(b)
result = result + b(i)
Next
Quersumme = result
End Function
这是做了很多time over all query(about 100)from a query:
Set rs = db.OpenRecordset(strSQL)
' Loop through records
Do While Not rs.EOF
resultHash = resultHash + HashPart(rs(0))
resultLen = resultLen + Len(rs(0))
rs.MoveNext
Loop
rs.Close
MyHash = Str(resultLen) & "-" & Str(resultHash)
这个效果很好,但速度很慢。我以前的版本使用Mid进行字符串迭代的速度更慢,但现在我不知道如何改进这一点。
有没有办法加快速度?
编辑:问题不在散列函数中,而是在查询中。
我看不出你量化'HashPart ='的位置。 – user3819867
@ user3819867修好了,谢谢! – Beginner
您的琴弦需要多长时间(平均)?“非常慢”的速度有多慢?如果我用110个字符的常量字符串运行10000次,则需要0.04秒。所以很可能你的查询很慢,而不是函数。 – Andre