Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VBA - авторизация пользователя / 6 сообщений из 6, страница 1 из 1
04.04.2007, 22:58:40
    #34438966
LeCrunch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA - авторизация пользователя
Пишу макрос для Excel, который посредством ADO получает данные запроса из БД Access, находящейся в сетевой папке.
Для входа в неё необходима авторизация; хочу спросить совета, как грамотно это реализовать – по двум вариантам:

1. Как заранее проверить, что с начала Windows-сессии в эту папку не было входа (т.е. пароль не кэширован), чтобы корректно вызвать стандартное окно запроса логина/пароля, дождаться их ввода пользователем, а потом автоматически продолжить выполнение макроса?

2. Как правильно прописать в коде макроса логин/пароль (хотя это и небезопасно…), чтобы процесс авторизации проходил "прозрачно"?
Можно как-нибудь зашифровать сам текст кода (а не модуль), по аналогии с VBS?

И вообще, подкиньте пожалуйста ссылок на решение вопросов, связанных с подобной авторизацией (можно по англ.)
...
Рейтинг: 0 / 0
05.04.2007, 01:28:43
    #34439032
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA - авторизация пользователя
LeCrunch1. Как заранее проверить, что с начала Windows-сессии в эту папку не было входа (т.е. пароль не кэширован), чтобы корректно вызвать стандартное окно запроса логина/пароля, дождаться их ввода пользователем, а потом автоматически продолжить выполнение макроса?ээээ.... а зачем? Читай пункт два:

LeCrunch2. Как правильно прописать в коде макроса логин/пароль (хотя это и небезопасно…), чтобы процесс авторизации проходил "прозрачно"?В строке коннекта, при помощи специальных ключевых слов UID & PWD.
Код: plaintext
1.
 Set cnn = CreateObject("ADODB.Connection")
 cnn.Open "DSN=abcd;UID=" & lsLogin & ";PWD=" & lsPassword
Ну а уж откуда ты возмешь значения для lsLogin и lsPassword - из макроса, из листа, из внешнего файла или у юзера через собственную формочку спросишь - это уже не важно.

LeCrunchМожно как-нибудь зашифровать сам текст кода (а не модуль), по аналогии с VBS?Обфускацию? Да можно, копируешь текст модуля во внешний файл, отдаешь его обфускатору, потом результат копируешь обратно в модуль.
Ну и можно закрыть сам VBProject на пароль.
...
Рейтинг: 0 / 0
05.04.2007, 07:26:50
    #34439093
LeCrunch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA - авторизация пользователя
White Owlээээ.... а зачем?
Первый мой вопрос - как авторизоватся вручную, не прописывая нигде пароля (для соблюдения безопасности).
Т.е. интересует как именно вызвать стандартное окно запроса логина/пароля, дождаться их ввода пользователем, а потом автоматически продолжить выполнение макроса.


White OwlОбфускацию? Да можно, копируешь текст модуля во внешний файл, отдаешь его обфускатору, потом результат копируешь обратно в модуль.
Что это такое?)
...
Рейтинг: 0 / 0
06.04.2007, 22:23:29
    #34444802
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA - авторизация пользователя
LeCrunch White Owlээээ.... а зачем?
Первый мой вопрос - как авторизоватся вручную, не прописывая нигде пароля (для соблюдения безопасности).
Т.е. интересует как именно вызвать стандартное окно запроса логина/пароля, дождаться их ввода пользователем, а потом автоматически продолжить выполнение макроса.Не существует такой вещи как "стандартное окно запроса логина/пароля". Ты сам рисуешь это окно, либо позволяешь драйверу подключения показывать его окно, если у драйвера есть такая функциональность.

Ты не можешь попросить Акцесс показать его встроенное окно логина подключаясь через ADO.
ADO это сетевой и только сетевой интерфейс доступа к базе данных. Даже если твои Экселевская книга и Акцессовская база лежат вот прямо здесь на компе юзера - при подключении через ADO Эксель задействует сеть. А Акцесс у тебя работает как сервер базы данных, он не имеет доступа к экрану клиентского компьютера.

LeCrunch White OwlОбфускацию? Да можно, копируешь текст модуля во внешний файл, отдаешь его обфускатору, потом результат копируешь обратно в модуль.
Что это такое?)Обфускация? Приведение текста программы в нечитабельный вид.
...
Рейтинг: 0 / 0
07.04.2007, 09:50:04
    #34444992
LeCrunch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA - авторизация пользователя
А посоветуйте, как проверить доступность источника данных; т.е. нужно организовать проверку - если сеть недоступна, или ведется автономная работа на ноутбуке, то в этом случае данные брать из локальной копии.
...
Рейтинг: 0 / 0
08.04.2007, 04:26:05
    #34445571
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA - авторизация пользователя
LeCrunchА посоветуйте, как проверить доступность источника данных; т.е. нужно организовать проверку - если сеть недоступна, или ведется автономная работа на ноутбуке, то в этом случае данные брать из локальной копии.Опять не с того конца к задаче подходишь....
Можно конечно попытатся найти сервер по сети, на одном хосте, на другом... Получишь во первых стабильную задержку на стартапе, но это очень раздражает юзеров. А во вторых, изменения которые юзер наделал в локальной базе "магически исчезнут" в ближайший сеанс работы с сетевой базой.

Если юзер может в принципе работать в локальном режиме - пусть он всегда работает с локальной копией базы. А когда у него появился коннект с сервером - локальная база должна синхронизироваться с большой. Этот процесс называется синхронизацией баз или репликацией данных. Кажется в Акцессе есть встроенные средства для этого. Ну а если не найдешь - переходи на более серьезные базы данных :)
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VBA - авторизация пользователя / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]