2017-08-14 33 views
1

我發現可以這樣做的帖子,因此我假設我的崩潰與底層的LDAP和Active Directory有關。綁定ADODB(LDAP)記錄集以形成崩潰訪問

任何想法讚賞!

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 

回答

1

確定這代碼工作(只讀):

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