首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Excel VBA - 具有字符串连接的LDAP Active Directory请求

Excel VBA - 具有字符串连接的LDAP Active Directory请求
EN

Stack Overflow用户
提问于 2019-04-22 01:03:36
回答 1查看 0关注 0票数 0

我正在尝试从我们公司的Active Directory中查找我正在Excel 2016中编写的工具的联系人属性。当用户提供电子邮件地址或全名(FIRSTNAME LASTNAME)时,程序应该能够执行数据库查找- 无论他们希望如何至。

这适用于电子邮件地址和其他属性,这些属性在数据库中与用户提供的语法相同。不幸的是,数据库没有以我需要的格式存储全名,也就是说FIRSTNAME LASTNAME

所以我想我必须告诉请求还返回属性的匹配givennamesn因为那些构成了所需的全名。

为了做到这一点,我尝试了以下连接属性'givenname'和'sn'的方法。他们都没有工作:

  1. 在SQL的WHERE子句中我添加了: ' OR givenname & " " & sn = '" & Trim(rng.Text) & "' (see code snippet below)
  2. 在SQL的SELECT部分中,我测试了几种创建别名的方法: * ([givenname] || [sn]) As myfullname * ([givenname] + [sn]) As myfullname * ([givenname] & [sn]) As myfullname * and all of the above without square brackets and round brackets

似乎不完全支持LDAP请求中使用的SQL。因为我甚至无法创建别名。我也不能使用方括号或CONCAT()SQL命令中的函数。

每次我尝试了一种方法,我得到一个vba错误:

至少发生一次错误

在SQL的其他实现中(不在VBA中),givenname & " " & sn非常好用。

问题:如何执行检查我SearchString的属性givenname(firstname)和sn(lastname)的连接以及它们之间的空格的请求?

代码语言:javascript
复制
' Connect to active directory
Set objDSE = GetObject("LDAP://rootDSE")
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Provider = "ADsDSOObject"
objConnection.Open
Set objCommand = CreateObject("ADODB.Command")
Set objCommand.ActiveConnection = objConnection
SearchString = "Max Mustermann"

' Contact lookup using SQL-query
objCommand.CommandText = _
    "SELECT givenname, sn, mail, telephoneNumber, mobile, mailNickName, c, l, postalCode, department, company, streetAddress " & _
    "FROM 'LDAP://" & objDSE.Get("defaultNamingContext") & "' " & _
    "WHERE objectCategory='person' AND (mail = '" & SearchString t & "' OR givenname & sn = '" & SearchString & "')"
Set objRecordset = objCommand.Execute

If Not objRecordset.EOF Then
' Further processing which is not relevant to the question
' ...
EN

回答 1

Stack Overflow用户

发布于 2019-04-22 10:36:50

我终于解决了它,希望我能避免。它当然不是传统的,也不是有效的,但它解决了这个问题。我编写了一个函数,将函数转换SearchString为数据库支持的格式。

如果有人在这方面有更好的方法,请随意发布。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100009019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档