powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Нужен пример формы логона к БД из Excel
23 сообщений из 23, страница 1 из 1
Нужен пример формы логона к БД из Excel
    #36087444
erny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужен пример формы логона к БД из Excel.
Может кто сооружал. И как из нее передать параметры в процедуры, которые находится в других модулях, не сохраняя значение пароля в ячейках?
...
Рейтинг: 0 / 0
Нужен пример формы логона к БД из Excel
    #36088057
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поконкретнее можно?

если с "налёта", то возможно использование "внешних данных"
или же использовать обячное ADO

I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
Нужен пример формы логона к БД из Excel
    #36088422
erny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
база внешняя Oracle.
Из Екселя нужно чтоб пользователь вводил имя пароль и название БД, могут конектится разные пользователи, и к разным БД.
В ячейках хранить пароль наверно неправельно, значить нужна форма, куда пользователь вводит имя пользователя, пароль, имя БД.
Имя пользователя и имя БД должны сохранятся и быть возможны для выбора при следующем сеансе.
Пароль соответственно недоступен к просмотру, или отображался *****
Так как запросы и процедуры выполняются в разных модулях и кодах листов, нужно чтоб при их выполнение можна было обратится к переменным имени и пародя.
...
Рейтинг: 0 / 0
Нужен пример формы логона к БД из Excel
    #36088877
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к примеру так
хранить настройки: сервер и БД, в реестре (SaveSetting, GetSetting)
на макрос открытия книги, либо на какое-то событие или Hot-key запрашивать пароль (можно даже использовать InputBox), формировать строку подключения и открывать соединение к серверу


можно использовать стандартный контрол
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    Dim cn As New ADODB.Connection
    Dim oDataLink As New MSDASC.DataLinks
    
    GetSetting ...
    
    oDataLink.PromptEdit cn
    cn.Open
    
    ...
    
    Set oDataLink = Nothing
    Set cn = Nothing

пробуйте
I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
Нужен пример формы логона к БД из Excel
    #36089561
erny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот он мне и нужен - стандартный контрол, а как его можно получить?
...
Рейтинг: 0 / 0
Нужен пример формы логона к БД из Excel
    #36089680
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подключается через refrence
Microsoft OLE DB Sevice Component 1.0 Type Library
(oledb32.dll)

как работать видно из кода (oDataLink)


I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
Нужен пример формы логона к БД из Excel
    #36089691
ZVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ernyВот он мне и нужен - стандартный контрол, а как его можно получить?
Пара ссылок из Google :
How To Invoke the OLE DB Data Link Properties Dialog Box in Visual Basic Code
Динамическое создание строки связи с помощью OLE DB Data Link из программ на VB6
...
Рейтинг: 0 / 0
Нужен пример формы логона к БД из Excel
    #36089727
erny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо друг, второй день ищу, ничего ненахожу, наверно нето ищу....
А случаем незнаеш у OO4O есть такой контрол?
...
Рейтинг: 0 / 0
Нужен пример формы логона к БД из Excel
    #36089760
ZVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C OO4O не игрался, как и с Ораклом вообще, но подозреваю, что после его установки поставщик данных этого драйвера попадет в список указанного DataLinks контрола - см. вкладку "Поставщик данных", там кстати должен быть и Microsoft OLE DB Provider for Oracle
...
Рейтинг: 0 / 0
Нужен пример формы логона к БД из Excel
    #36089914
LeCrunch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Нужен пример формы логона к БД из Excel
    #36090762
erny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 LeCrunch
нет проблемы со строкой соединения, есть проблемы как вызвать окно в которое пользователь бы вводил имя пароль и БД.
пример
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Sub RunSQL_2_Name_Shop()
Dim OraSession As Object
Dim OraDatabase As Object
Dim StrSQL As String
Dim OraDynaset As Object
Dim ns As Object
Dim i, j As Long

Set OraSession = CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase = OraSession.OpenDatabase("БД", "юзер/пассв",  0 &)
StrSQL = "SELECT code_shop,name_shop FROM mz.v_box_shop"
Set OraDynaset = OraDatabase.CreateDynaset(StrSQL,  0 &)
Set ns = Sheets("index").ComboBox_ns
ns.Clear
j = OraDynaset.RecordCount
  OraDynaset.MoveFirst
  For i =  0  To j -  1 
ns.AddItem OraDynaset.Fields("name_shop")
ns.List(i,  0 ) = OraDynaset.Fields("name_shop")
ns.List(i,  1 ) = OraDynaset.Fields("code_shop")
    OraDynaset.MoveNext
  Next
Set OraDynaset = Nothing
CloseOracle
End Sub
2 ZVI HandKot
для ADODB супер работает -спасибо
но к ОО4О я ее так и не смог применить

Вотк ак зделать чтоб в строке
Код: plaintext
1.
Set OraDatabase = OraSession.OpenDatabase("БД", "юзер/пассв",  0 &)
не статично задавать "БД", "юзер/пассв"
а пользователь бы их вводил
И учитывая то что селектов у меня много в книге хотелось бы чтоб в любой момент можно было бы обратиться и получить значения "БД", "юзер/пассв"
...
Рейтинг: 0 / 0
Нужен пример формы логона к БД из Excel
    #36091159
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
erny Вотк ак зделать чтоб в строке

Set OraDatabase = OraSession.OpenDatabase("БД", "юзер/пассв", 0&)

не статично задавать "БД", "юзер/пассв"
а пользователь бы их вводил
И учитывая то что селектов у меня много в книге хотелось бы чтоб в любой момент можно было бы обратиться и получить значения "БД", "юзер/пассв"

нарисовать свою формочку с тремя текстбоксами, для базы, логина и пароля?
минус - нельзя получить список существующих БД на сервере, но вероятно, если список постоянный, то самому забить их в Комбобокс


I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
Нужен пример формы логона к БД из Excel
    #36091941
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HandKotнарисовать свою формочку с тремя текстбоксами, для базы, логина и пароля?
минус - нельзя получить список существующих БД на сервере, но вероятно, если список постоянный, то самому забить их в Комбобоксну почему-же "нельзя"? Все можно если очень хочется. Выбирай:
- подключиться к серверу два раза. Первый раз юзером у которого нету вообще никаких прав на сервере кроме одного - запускать хранимую процедуру из master которая выдавала бы список баз. Потом разлогиниваешься и открываешь форму для логина нормального юзера.
- На форму логина вешаешь обработчик который проверяет что если в поле логина и пароля уже что-то есть а фокус только что вышел из этих двух полей - пытаемся подключиться к серверу не дожидаясь кнопки Ok, загружаем и показываем список баз, принудительно перекидываем фокус в список баз.
- показывать список баз на второй странице диалога логина.

Но с другой стороны, кому надо смотреть на список баз вообще? Только разработчику. А простой юзер всегда живет только в одной базе.
...
Рейтинг: 0 / 0
Нужен пример формы логона к БД из Excel
    #36092437
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНо с другой стороны, кому надо смотреть на список баз вообще? Только разработчику. А простой юзер всегда живет только в одной базе.
не факт.
1) во многих системах пользователю нужно работать с разными БД.
К примеру, если базу делят по годам, т.е есть оперативная база и есть архивные базы
Но в таких случаях список баз всегда постоянный

2) разные пользователи работают с разными БД
К примеру, у каждого департамента своя БД
И в этом случае список баз всегда постоянный

Так что скорее всего можно обойтись без "левого" логина для определения списка баз на сервере, используя фиксированный список.
Или же сделать так, сначала пользователь вводит логин и пароль и когда открывает список баз, то по этому событию создаётся подключение и вытягивается список баз.
В принципе так и сделано и Microsoft в диалоге подключения

I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
Нужен пример формы логона к БД из Excel
    #36092613
erny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
народ, это все понятно, можно конечно написать форму, и с пользователем, и в инишке можно хранить данные о базах и пользователях.
Но есть же компонентах оракловых для делфи такие формы, как то неверится что для VBA такого нет.
Я правда всю документашку перечитал, может просмотрел. Все равно кажется должен быть уже написанный вариант, неужеле все вписывают в коде имя и пароль.
...
Рейтинг: 0 / 0
Нужен пример формы логона к БД из Excel
    #36092661
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имя и пароль никто в коде не прописывает. данные получают программно с сервера
...
Рейтинг: 0 / 0
Нужен пример формы логона к БД из Excel
    #36092780
f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ernyНо есть же компонентах оракловых для делфи такие формы, как то неверится что для VBA такого нет.
Я правда всю документашку перечитал
А что? В документации к делфи что-то написано про такие формы?
Напишите свою программу с использованием обычной формы со стандартными контролами - и у вас на VBA такое будет. Или ищите в Интернете. Может, кто-нибудь уже написал.
При чем тут документация?
...
Рейтинг: 0 / 0
Нужен пример формы логона к БД из Excel
    #36093389
erny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 F
В документации к компонентам для работы с базами для делфи.
В документации к OO4O все примеры строки конекта содержат напрямую пароль и имя пользователя.
Нет никаких намеков про ввода пароля через формы, только через прописание в коде.
Я понимаю что это примеры и я могу поступать по другому, но это примеры от Oracle.
аля
Код: plaintext
1.
Set OraDatabase = OraSession.DbOpenDatabase("SQL*Net_Connect_String", "scott/tiger",  0 &)
...
Рейтинг: 0 / 0
Нужен пример формы логона к БД из Excel
    #36093419
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
логин и пароль необходимы для того, чтобы доступ к определенной части информации получил только тот человек, у которого есть доступ к этой инфе. Если прописать логин и пароль в компонентах или коде, то доступ к инфе получат все, кто получит доступ к компу, с которого осуществляется коннект.
в этом случае, какой смысл в пароле? разграничить доступ к компу и все
...
Рейтинг: 0 / 0
Нужен пример формы логона к БД из Excel
    #36094188
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ernyНет никаких намеков про ввода пароля через формы, только через прописание в коде.Ты что, формы не можешь в Экселе найти? Делай:
1) Запускаем Эксель
2) Жмем Alt+F11
3) В главном меню VBA выбираем Insert->User Form
4) Рисуем диалог с двумя полями и двумя кнопками.
Все.
...
Рейтинг: 0 / 0
Нужен пример формы логона к БД из Excel
    #36094858
erny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl Ты что, формы не можешь в Экселе найти? Делай:
Почему немогу, все давно в проэкте.
Только у меня такое впечатление что еть компонент(контрол), который можно использовать.
Незнаю может я неправ, ИМХО: должен быть.
...
Рейтинг: 0 / 0
Нужен пример формы логона к БД из Excel
    #36094880
erny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОК, как можно в VBA получить пасв и имя используя ADODB для их заполнения
Код: plaintext
1.
oDataLink.PromptEdit cn
и установить провайдер для PromptEdit в процедуре, так как тот что по умолчанию, меня неустраивает.
...
Рейтинг: 0 / 0
Нужен пример формы логона к БД из Excel
    #36095643
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
очень просто
авторОК, как можно в VBA получить пасв и имя используя ADODB для их заполнения

oDataLink.PromptEdit cn

и установить провайдер для PromptEdit в процедуре, так как тот что по умолчанию, меня неустраивает.

Код: plaintext
1.
2.
    cn.Properties("Persist Security Info") = True
    cn.ConnectionString = "Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;"
    odatalink.PromptEdit cn

после odatalink.PromptEdit получите пользователя и пароль через св-ва

Код: plaintext
1.
cn.Properties("User ID").Value
cn.Properties("Password").Value

ЗЫЖ всё-таки этот контрол вместо OraOLEDB.Oracle подставил своего MSDASQL.1
но что можно взять от них ;)

I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Нужен пример формы логона к БД из Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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