如何正确将GUID保存为字符串?

时间:2019-05-21 03:44:42

标签: vba ms-access guid

我将GUID保存在链接到MS-Access数据库的SQL服务器表中(Access中的数据类型:“复制ID”)。

在表格中,我看到的GUID是这样的:{CFFACB63-5EB1-43B2-BCCB-ACF6B226B4F4}

现在我要在代码中使用GUID,它仅显示为“ ????????”

Dim strGuid As String
strGuid = CStr(Me.TransGUID)
Debug.Print " strGuid: '" & strGuid & "'"
Debug.Print " Len(strGuid): " & Len(strGuid) & ""

显示:strGuid:'????????',Len(strGuid):8

我以前在代码中使用过GUID,从来没有任何问题,这是我第一次看到。我很困惑这里发生了什么。我如何按原样保存GUID,为什么不按应有的方式保存GUID?有什么想法吗?

如果我在表单字段中显示保存的字符串,则GUID会显示为类似于中文的奇怪字符。

GUID shown in a form

2 个答案:

答案 0 :(得分:3)

Access具有将GUID转换为字符串的内置功能。<​​/ p>

Dim strGuid As String
strGuid = StringFromGUID(Me.TransGUID)
Debug.Print " strGuid: '" & strGuid & "'"

虽然可以使用本机WinAPI函数对其进行转换,但不需要这样做。

答案 1 :(得分:1)

GUID是16个二进制字节的数据类型,您必须将其转换为人类可读的字符串才能显示。您可以为此使用API​​函数,例如,参见here