Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access VBA:类型不匹配_Ms Access_Vba - Fatal编程技术网

Ms access VBA:类型不匹配

Ms access VBA:类型不匹配,ms-access,vba,Ms Access,Vba,我还不是特别擅长VBA。我在标题中看到一个错误,它指向以开头的行,如果NamePart=,它会突出显示=符号。有人知道为什么吗 Public Enum NamePart EnvironmentDefined FullName FirstName LastName End Enum Public Function GetUser(Optional ByVal part As NamePart = EnvironmentDefined) As String

我还不是特别擅长VBA。我在标题中看到一个错误,它指向以
开头的行,如果NamePart=
,它会突出显示
=
符号。有人知道为什么吗

Public Enum NamePart
    EnvironmentDefined
    FullName
    FirstName
    LastName
End Enum

Public Function GetUser(Optional ByVal part As NamePart = EnvironmentDefined) As String

    Dim result As String
    Dim sysInfo As Object
    Dim userInfo As Object

    If NamePart = EnvironmentDefined Then
        GetUser = Environ$("USERNAME")
        Exit Function
    End If

    Set sysInfo = CreateObject("ADSystemInfo")
    Set userInfo = GetObject("LDAP://" & sysInfo.UserName)
    Select Case NamePart
        Case FullName
            result = userInfo.FullName
        Case FirstName
            result = userInfo.GivenName
        Case LastName
            result = userInfo.LastName
        Case Else
            result = Environ$("USERNAME")
    End Select

    GetUser = result

End Function

Private Sub Command363_Click()

    Call GetUser
    MsgBox "Username: " & GetUser

End Sub

NamePart
是一个枚举,这意味着要使用它进行比较,您可能需要询问枚举中的任何一项是否等于某个值

If part = NamePart.EnvironmentDefined Then


请注意,当您在
NamePart
之后点击
时,所有枚举选项都会出现

另外,
Select Case NamePart
应该是
Select Case part
Select Case part
    Case NamePart.FullName
        result = userInfo.FullName
    Case NamePart.FirstName
        result = userInfo.GivenName
    Case NamePart.LastName
        result = userInfo.LastName
    Case Else
        result = Environ$("USERNAME")
End Select