Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

【access源码通用函数】一个生成同步复制ID的函数(即GUID,全球同步唯一标识符)

时 间:2010-12-13 00:00:00
作 者:红尘如烟   ID:10768  城市:成都
摘 要:同步复制ID,即GUID(全球同步唯一标识符),通过特定的算法,生成的一个128位的字符串,在纳秒级的时间内,任意两台电脑生成的GUID都不会相同(理论上在公元3400年以前如此),从而确保标识的唯一性。

正 文:

同步复制ID,即GUID(全球同步唯一标识符),通过特定的算法,生成的一个128位的字符串,在纳秒级的时间内,任意两台电脑生成的GUID都不会相同(理论上在公元3400年以前如此),从而确保标识的唯一性。

Private Type GUID
    Data1 As Long
    Data2 As Integer
    Data3 As Integer
    Data4(7) As Byte
End Type
  
Private Declare Function CoCreateGuid Lib "ole32.dll" (pguid As GUID) As Long

'生成GUID(同步复制ID) ===红尘如烟=======
Public Function GetGUID() As String
    Dim typGUID As GUID
    If (CoCreateGuid(typGUID) = 0) Then
        GetGUID = GetGUID & String(8 - Len(Hex$(typGUID.Data1)), "0") & Hex$(typGUID.Data1) & "-"
        GetGUID = GetGUID & String(4 - Len(Hex$(typGUID.Data2)), "0") & Hex$(typGUID.Data2) & "-"
        GetGUID = GetGUID & String(4 - Len(Hex$(typGUID.Data3)), "0") & Hex$(typGUID.Data3) & "-"
        GetGUID = GetGUID & IIf((typGUID.Data4(0) < &H10), "0", "") & Hex$(typGUID.Data4(0))
        GetGUID = GetGUID & IIf((typGUID.Data4(1) < &H10), "0", "") & Hex$(typGUID.Data4(1)) & "-"
        GetGUID = GetGUID & IIf((typGUID.Data4(2) < &H10), "0", "") & Hex$(typGUID.Data4(2))
        GetGUID = GetGUID & IIf((typGUID.Data4(3) < &H10), "0", "") & Hex$(typGUID.Data4(3))
        GetGUID = GetGUID & IIf((typGUID.Data4(4) < &H10), "0", "") & Hex$(typGUID.Data4(4))
        GetGUID = GetGUID & IIf((typGUID.Data4(5) < &H10), "0", "") & Hex$(typGUID.Data4(5))
        GetGUID = GetGUID & IIf((typGUID.Data4(6) < &H10), "0", "") & Hex$(typGUID.Data4(6))
        GetGUID = GetGUID & IIf((typGUID.Data4(7) < &H10), "0", "") & Hex$(typGUID.Data4(7))
    End If
End Function

 点击下载此附件



Access软件网QQ交流群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助