Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сообщения при коннекте ADP к MS SQL Server'у / 3 сообщений из 3, страница 1 из 1
12.12.2004, 16:09:11
    #32824874
Remblyn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщения при коннекте ADP к MS SQL Server'у
Подскажите как мне заменить стандартные окна при коннекте к Серверу на свои?
например я ввожу логин и пароль в стандартное окно коннекта АDP к SQL server-у... при ошибке, выскакивает сообщение типа: "Login Failed..."... и кнопка "ОК"... как мне изменить фразу на " Неправильный Логин\Пароль, попробуйте еще раз..."?
...
Рейтинг: 0 / 0
12.12.2004, 20:45:53
    #32824964
Сообщения при коннекте ADP к MS SQL Server'у
Создать свою форму для диалогового окна подключения и написать к ней свой код, какой только захотите. Когда мне потребовалось - я написал, ничего сложного.

Идея тут такая: при перед выходом из приложения всякий раз отключать ADP от сервера, чтобы он в таком виде и сохранился, а при старте - вновь подключать своим кодом, перехватывая ошибки. Смысл приведения файла ADP всякий раз перед новым стартом в отключенное состояние в том, что если этого не сделать, то может случиться так, что система при определённых обстоятельствах будет пытаться соединиться с сервером до того , как ваш код, инициализирующий приложение, получит управление.

Для эмуляции события "выход из приложения" следует использовать событие Unload скрытой формы, остающейся открытой в течение всего времени работы приложения (её событие Close уже не будет вызвано). В частности, в качестве такой формы хорошо подходит стартовая форма (заставка), но это уже на ваш вкус.

Вот эта строка отключает ADP от сервера, стирая строку подключения (это именно то, что в данном случае надо, поскольку метод CurrentProject.CloseConnection свойства подключения не стирает и мало того, иногда без внятной причины порождает ошибку 6008):
Код: plaintext
Application.CurrentProject.OpenConnection ""

Для подключения к базе данных используется тот же метод, в качестве аргумента которому передаётся сконструированная строка подключения, примерно так (идентификация пользователя сервером MS SQL, а не trusted connection):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Set frm = Application.Forms(cstrLoginFormName)

strConnString = "PROVIDER=SQLOLEDB.1;PERSIST SECURITY INFO=FALSE;PASSWORD=" & _
        CStr(Nz(frm.Controls("Password").Value, "")) & _
    ";USER ID=" & _
        CStr(Nz(frm.Controls("Login").Value, "")) & _
    ";INITIAL CATALOG=" & _
        CStr(Nz(frm.Controls("Database").Value, "")) & _
    ";DATA SOURCE=" & _
        CStr(Nz(frm.Controls("Server").Value, ""))

Application.CurrentProject.OpenConnection strConnString
...
Рейтинг: 0 / 0
12.12.2004, 22:25:04
    #32824990
Программист-Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщения при коннекте ADP к MS SQL Server'у
Кстати, об отключении.

Аналогичная идея - при выходе отключать библиотеки ADODB, ADOX и др., оставляя только необходимые built-in. Тогда при запуске приложения можно правильно подключить именно те версии, которые имеются на машине данного пользователя. Таким образои обеспечивается функционирование приложения под разными Аксесами/Офисами - 2000/XP/2003.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сообщения при коннекте ADP к MS SQL Server'у / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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