Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2016 - Word получение данных из AD

Ответить
Настройки темы
2016 - Word получение данных из AD

Старожил


Сообщения: 300
Благодарности: 8

Профиль | Отправить PM | Цитировать


Добрый день, есть скрипт на VBA для excel получение данных из AD, подскажите как такое-же можно провернуть для word.

Код: Выделить весь код
Function GetADInfo(ByVal SearchField, ByVal SearchString, ByVal ReturnField)

Dim adoCommand, strDomain, objConnection

strDomain = "dc=Ваш_домен,dc=local"

Set objConnection = CreateObject("ADODB.Connection")

objConnection.Open "Provider=ADsDSOObject;"

Set adoCommand = CreateObject("ADODB.Command")

adoCommand.ActiveConnection = objConnection

adoCommand.CommandText = _
 "<LDAP://" & strDomain & ">;(&(objectCategory=" & "User" & ")" & _
 "(" & SearchField & "=" & SearchString & "));" & SearchField & "," & ReturnField & ";subtree"

Dim objRecordSet

Set objRecordSet = adoCommand.Execute

If objRecordSet.RecordCount = 0 Then

GetADInfo = "not found"

Else

GetADInfo = objRecordSet.Fields(ReturnField)
End If

objConnection.Close

Set objRecordSet = Nothing

Set objCommand = Nothing

Set objConnection = Nothing

End Function

Отправлено: 09:51, 14-12-2018

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


mcintosh55, я не вижу в приведённом коде ничего специфичного ни для Excel, ни даже для VBA в целом.

Отправлено: 12:53, 14-12-2018 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 300
Благодарности: 8

Профиль | Отправить PM | Цитировать


Цитата Iska:
я не вижу в приведённом коде ничего специфичного ни для Excel, ни даже для VBA в целом. »
Я так понимаю надо сделать так:
1) написать функцию при запуске документа которая определит имя пользователя и положит данные в переменную А
2) дальше просто вызывать функцию выше и подсовываем ей переменную А и туда куда надо вывести
Я так понимаю как описано выше надо сделать?

Отправлено: 13:09, 14-12-2018 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата mcintosh55:
Я так понимаю надо сделать так: »
Это Вы о чём сейчас? И как сие связано с:
Цитата mcintosh55:
есть скрипт на VBA для excel получение данных из AD, подскажите как такое-же можно провернуть для word. »
?!

Опишите Вашу задачу.

Отправлено: 13:25, 14-12-2018 | #4


Старожил


Сообщения: 300
Благодарности: 8

Профиль | Отправить PM | Цитировать


есть форма в формате word при открытие документа в определенные поля нужно ввести данные из AD пользователя которые работает за компьютером

Последний раз редактировалось mcintosh55, 14-12-2018 в 15:26. Причина: дополнение


Отправлено: 13:34, 14-12-2018 | #5


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Ага, примерно ясно.

Приведённый выше код функции GetADInfo, возвращающий либо строку "not found", либо объект типа Field, может быть непосредственно использован в любом приложении Microsoft Office, либо в WSH без каких-либо переделок.

Если Вас интересуют данные текущего пользователя, то можно попробовать сделать и проще, наподобие: User Information - VBScript - SS64.com, вместо того, чтобы лопатить запросом всю иерархическую базу AD.

Отправлено: 14:24, 14-12-2018 | #6


Старожил


Сообщения: 300
Благодарности: 8

Профиль | Отправить PM | Цитировать


А еще подскажите как связать "поле со списком" с полем "форматированный текста". Т.е. к примеру из "поле со списком" выбираю должность "директор" а в поле "форматированный текста" появляется фамилия

Отправлено: 16:28, 14-12-2018 | #7


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Навряд ли подскажу — пробовать не на чем: у меня Microsoft Office 2003, а в нём была совершенно иная модель форм (если речь именно про формы в документе).

В моей версии нет поля вида «форматированный текст», есть просто текстовое поле. И всё, что можно сделать — написать макрос, наподобие:
Код: Выделить весь код
Option Explicit

Sub Sample()
    Me.FormFields.Item("ТекстовоеПоле1").Result = Me.FormFields.Item("ПолеСоСписком1").Result
End Sub
и привязать его к полю «Поле со списком» («ПолеСоСписком1») следующим образом:
Скрытый текст

В Вашей версии в новой модели форм должно быть намного больше возможностей в этом плане.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:27, 14-12-2018 | #8


Старожил


Сообщения: 300
Благодарности: 8

Профиль | Отправить PM | Цитировать


если сможете файл как пример скиньте а то Я так не смог сделать

Отправлено: 18:52, 14-12-2018 | #9


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Держите (ссылка будет доступна 7 дней). Но лучше пользуйте новую модель, которая доступна в Вашей версии Microsoft Office.

Отправлено: 01:26, 15-12-2018 | #10



Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2016 - Word получение данных из AD

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Получение данных из 7z для отображения в GUI -TRM- AutoIt 10 28-08-2018 18:24
.NET - Импорт данных из Word в textbox Ali002 Программирование и базы данных 11 05-05-2014 22:04
Прочее - Получение и отправка данных из/в интернет , доступ только для одного приложения AlexVong Сетевые технологии 0 13-10-2012 17:05
Экспорт данных из php в Word? rizz Вебмастеру 2 03-08-2009 23:23
[решено] Получение Данных из таблицы(JS) System Failure Вебмастеру 3 26-05-2008 08:36




 
Переход