我建议制作一个循环遍历所有记录并为每条记录设置 Pass 的 DAO 循环。您必须为 VBA 编写一个 MD5 散列函数或找到一个,或者如前所述,使用 SHA1。
Access 和 Access/Jet/DAO SQL 中的连接是使用与号或加号完成的。
这是一个使用 SHA1 散列字符串的函数。它返回一个 40 个字符的十六进制字符串。我不确定这是否与 Magento 散列算法兼容。
Public Function SHA1Hex(S As String) As String
Dim asc, enc, bytes, outstr, pos
'Borrow some objects from .NET (supported from 1.1 onwards)
Set asc = CreateObject("System.Text.UTF8Encoding")
Set enc = CreateObject("System.Security.Cryptography.SHA1CryptoServiceProvider")
'Convert the string to a byte array and hash it
bytes = asc.GetBytes_4(S)
bytes = enc.ComputeHash_2((bytes))
outstr = ""
'Convert the byte array to a hex string
For pos = 1 To LenB(bytes)
outstr = outstr & LCase(Right("0" & Hex(AscB(MidB(bytes, pos, 1))), 2))
Next
SHA1Hex = outstr 'Returns a 40 byte/character hex string
Set asc = Nothing
Set enc = Nothing
End Function
可以在 SO 上找到 DAO 循环的代码:
Code to loop through all records in MS Access