我需要根據一些實驗用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