Active directory 将ADODB(LDAP)记录集绑定到表单访问

Active directory 将ADODB(LDAP)记录集绑定到表单访问,active-directory,ldap,ms-access-2010,adodb,recordset,Active Directory,Ldap,Ms Access 2010,Adodb,Recordset,我发现这是可以做到的,所以我假设我的崩溃与底层LDAP和Active Directory有关 任何想法都值得赞赏 Private objRecordset As ADODB.Recordset Private Sub Form_Open(Cancel As Integer) Dim objConnection As ADODB.Connection Dim objCommand As ADODB.Command Set objConnection = CreateOb

我发现这是可以做到的,所以我假设我的崩溃与底层LDAP和Active Directory有关

任何想法都值得赞赏

Private objRecordset As ADODB.Recordset

Private Sub Form_Open(Cancel As Integer)
    Dim objConnection As ADODB.Connection
    Dim objCommand As ADODB.Command

    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.CommandText = "Select givenName, sn, mailNickname, department, physicalDeliveryOfficeName, telephoneNumber, mobile " _
        & "FROM 'LDAP://dc=ad,dc=secret,dc=secret,dc=secret,dc=secret'" _
        & "WHERE objectCategory='user' AND deparment='Example Department'"

    Set objRecordset = objCommand.Execute ' Returns good records here

    Set Me.Recordset = objRecordset ' Crashes and Restarts Access here

    Me![txtMailname].ConrtolSource = "mailNickname"
    Me![txtFirstname].ControlSource = "givenName"
    Me![txtLastName].ConrtolSource = "sn"
    Me![txtOffice].ControlSource = "physicalDeliveryOfficeName"
    Me![txtDepartment].ControlSource = "department"
    Me![txtPhone].ControlSource = "telephoneNumber"
    Me![txtMobile].ControlSource = "mobile"
End Sub
好,这段代码有效(只读):

Private rs As ADODB.Recordset

Private Sub Form_Open(Cancel As Integer)
    Dim objConnection As ADODB.Connection
    Dim objConnection As ADODB.Connection

    Set objConnection = CreateObject("ADODB.Connection")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"

    Set rs = New ADODB.Recordset
    rs.ActiveConnection = objConnection
    rs.Source = "Select mailNickname, givenName, sn, department, physicalDeliveryOfficeName, telephoneNumber, mobile " _
        & "FROM 'LDAP://dc=ad,dc=secret,dc=secret,dc=secret,dc=secret' " _
        & "WHERE objectCategory='user' AND extensionAttribute5='Technology Crime Services'"
    rs.LockType = adLockReadOnly
    rs.CursorType = adOpenStatic
    rs.CursorLocation = adUseClient
    rs.Open

    Set Me.Recordset = rs

    Me![txtMailname].ControlSource = "mailNickname"
    Me![txtFirstname].ControlSource = "givenName"
    Me![txtLastName].ControlSource = "sn"
    Me![txtOffice].ControlSource = "physicalDeliveryOfficeName"
    Me![txtDepartment].ControlSource = "department"
    Me![txtPhone].ControlSource = "telephoneNumber"
    Me![txtMobile].ControlSource = "mobile"
End Sub