我一直使用相同的代碼從當前用戶獲取全名,現在它突然開始表現怪異。 我有一個名爲CurrentUser的字符串變量,我用我的函數GetFullNameOfLoggedUser()填充。 這個返回在即時窗口(msgbox也工作正常)「姓,名(F)」它應該。附加到字符串的字符都顯示爲VBA中的問號
當我想給變量,另一個名爲「SQL1」字符串變量,它開始表現怪異,突然:
CurrentUser = GetFullNameOfLoggedUser()
Dim sql1 As String: sql1 = "UPDATE Tbl_Records SET Tbl_Records.[Added by] = """ & CurrentUser & """ WHERE Tbl_Records.[Added by] IS NULL;"
SQL1的值突然變爲:
UPDATE Tbl_Records SET Tbl_Records.[Added by] = "Lastname, Firstname (F)? ????? ?????????????????? ??? ?? ?????
有沒有人有一個線索,所有的問號來自哪裏?
免責聲明姓氏和名字顯然是常規值,爲了隱私而忽略。
額外的信息:
要獲得完整的網名,我用這美好的片斷,從開發阿希什代碼,這使得使用Windows API的: http://access.mvps.org/access/api/api0066.htm
的功能已經變暗爲串。我已經在函數的末尾添加了一個「」,以確保該值是一個字符串類型:
Function GetFullNameOfLoggedUser(Optional strUserName As String) As String
...
GetFullNameOfLoggedUser = StrFromPtrW(pTmp.EUI_full_name) & ""
End Function
正如當地人窗口看到,它確實是一個字符串。 (此卡已採取正確的funcion結束前,所以沒有進一步的變化將發生在變量。
CurrentUser也被明確定義爲一個字符串變量。Explicit選項也是每個網頁上的活躍。
是名稱的(F)部分或者是奇怪的呢?這是所有名字的情況嗎? – EvenPrime
(F)也屬於「CurrentUser」。 (名字的第一個字母)我無法在不同的計算機上嘗試它。但是我現在使用的名字以前從未給我這個問題。 – Jens
檢查「CurrentUser」變量的類型和「GetFullNameOfLoggedUser()」函數的返回類型。明確聲明它們是'String'。如果其中一個是「變體」,奇怪的事情可能會發生。另外,調試'GetFullNameOfLoggedUser()'函數,並檢查它獲取結果的位置,以及應用程序中是否有其他操作正在修改此值(可能會將Watch添加到變量中)。 – Barranka