私に何が問題なのか分かりませんが、この文字列を正しく取得できません。このExcelシートのユーザー情報があり、LDAP経由でADに接続したいのですが、この自動化エラー '-2147217900(80040e14)'が表示されます。LDAP文字列に構文エラーがある可能性があります。ここでは、この関数を使用してユーザーの識別名を取得します。それから、私はそれを返し、adoConnection.Executeを通してそれを渡そうとします。Excel VBA - ユーザーのLDAP文字列を正しく取得する
返されたLDAP文字列は次のようになります。
<LDAP://CN=Bowie\,David,OU=Geniouses,OU=Music,DC=MasterDomain,DC=local>;ADsPath;subtree
コードは次のようになります。
Public Function getUsersDN(ByVal strUsername As String)
Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.CommandText = _
"SELECT distinguishedName FROM 'LDAP://dc=MasterDomain,dc=local' " & _
"WHERE objectCategory='user' " & _
"AND sAMAccountName='" & strUsername & "'"
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
strDN = objRecordSet.Fields("distinguishedName").Value
getUsersDN = strDN
objRecordSet.MoveNext
Loop
End Function
[OK]をクリックすると、「例外が発生しました:コマンドの処理中に1つ以上のエラーが発生しました。 'あまり情報がありません。 –
私は自分の答えを編集しました – heximal
これはSQLクエリですね。それをVBAで使うことはできますか? –