powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как уйти от DlookUP
50 сообщений из 50, показаны все 2 страниц
Как уйти от DlookUP
    #32616605
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть кусок кода
Код: plaintext
1.
2.
3.
4.
5.
6.
Prava_yes = DLookup("[ADV_REP_Admin]", "Permissions", "[Name]=" & "'" & Forms!PassForm!PassForm_nam & "'")
If Prava_yes = True Then
    Open_ADV_REP = "*"
Else
    Open_ADV_REP = Trim(Forms!PassForm!PassForm_nam)
End If
Попытался изменить его на
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Dim rs As ADODB.Recordset
Dim cn As Connection
Dim str As String
Set cn = CurrentProject.Connection
Set rs = New ADODB.Recordset
str = "select ADV_REP_Admin from Permissions where name='" & Forms!PassForm!PassForm_nam & "';"
rs.Open str, cn, adOpenStatic, adLockReadOnly, adCmdText
While Not rs.EOF
If rs!ADV_REP_Admin = - 1  Then
    Open_ADV_REP = "*"
Else
    Open_ADV_REP = Trim(Forms!PassForm!PassForm_nam)
End If
Wend
А как ещё можно?
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32616628
Bor-L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Применить DAO ;-)
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32616630
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл добавить
Предложенный вариант почему-то не проходит (зацикливается).
Странно.
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32616635
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НЕ, я имею ввиду не вариации на тему, по координально.
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32616646
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри не то выкинул.
Вот код!
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Public Function Open_ADV_REP() As String
'--------------------------------------------------
Dim rs As ADODB.Recordset
Dim cn As Connection
Dim str As String
Set cn = CurrentProject.Connection
Set rs = New ADODB.Recordset
str = "select ADV_REP_Admin from Permissions where name='" & Forms!PassForm!PassForm_nam & "';"
rs.Open str, cn, adOpenStatic, adLockReadOnly, adCmdText
    While Not rs.EOF
If rs!ADV_REP_Admin = -1 Then
    Open_ADV_REP = "*"
Else
    Open_ADV_REP = Trim(Forms!PassForm!PassForm_nam)
End If
rs.MoveNext
Wend
' -------------------------------------------------------------
 
End Function
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32616650
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во, если мысля через ХП.
Пойдёт?
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32616653
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно зацикливается
Как он у тебя из цикла выйдет
если rs.EOF не сразу False
Зачем там вообще цикл?
ADP or MDB ?
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32616655
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь перейти от MDB в ADP
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32616685
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сдеай ХП кторая вернет тебе готовый результат
зачем проверять условие в цикле если его сразу в запрос можно
втиснуть.

Create procedure MySP (@PName as varchar(100))
AS

IF exists(SELECT ADV_REP_Admin FROM Permissions WHERE Name=@PName AND ADV_REP_Admin=1)
SELECT Cast(1 AS bit) AS RetCode
ELSE
SELECT Cast(0 As bit) AS RetCode


Prava_yes = CurrentProject.Connection.Execute("dbo.MySP " & Forms!PassForm!PassForm_nam ).Fields(0)

If Prava_yes Then
Open_ADV_REP = "*"
Else
Open_ADV_REP = Trim(Forms!PassForm!PassForm_nam)
End If
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32616698
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
апострофы забыл до кучи можно указать в уникоде nvarchar


Prava_yes = CurrentProject.Connection.Execute("dbo.MySP N'" & Forms!PassForm!PassForm_nam & "'"
).Fields(0)
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32616699
ищ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в mdb быстрее всего работает dlookup, чем рекордсеты и adodb.command
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32616719
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так я от mdb и хочу избавиться.
2 ищ: Кстати разговор не забыл (есть возможность достать мощный ноут, пойдёт?)
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32616726
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CurrentProject.Connection в MDB нет
так что реч об ADP
adodb.command обращающийся к SQL серверу
и использующий в качестве источника
запрос с параметром возвратит на клиента
уже отобранные сервером данные

а следовательно отработает гораздо быстрее
dlookup который сначала вытянет на клиента все данные из источника
а уже потом применит к ним фильтр.
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32616735
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если правильно понял
это ХП
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Create procedure MySP (@PName as varchar( 100 ))
AS

IF exists(SELECT ADV_REP_Admin FROM Permissions WHERE Name=@PName AND ADV_REP_Admin= 1 )
SELECT Cast( 1  AS bit) AS RetCode
ELSE
SELECT Cast( 0  As bit) AS RetCode
А это вызов
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Prava_yes = CurrentProject.Connection.Execute("dbo.MySP " & Forms!PassForm!PassForm_nam ).Fields( 0 )

If Prava_yes Then
Open_ADV_REP = "*"
Else
Open_ADV_REP = Trim(Forms!PassForm!PassForm_nam)
End If
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32616745
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Latuk:
А ты не прав,
Код: plaintext
1.
CurrentProject.Connection
в MDB работает, если не веришь, проверь
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32616753
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати конструкция
CurrentProject.Connection.Execute("блаблабла").Fields(0)
полностью заменяет DLookup но в отличии от него может выполнять
динамически собранные запросы

только если есть вероятность возвращения пустого результата
это необходимо доаполнительно обработать
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32616831
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Latuk:
Код: plaintext
1.
Prava_yes = CurrentProject.Connection.Execute("dbo.MySP N'" & Forms!PassForm!PassForm_nam & "'").Fields( 0 )

не работает.
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32616844
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a что говорит?
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32616852
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Create procedure MySP (@PName as varchar(100))
AS
--Забыл
SET NOCOUNT ON
--
IF exists(SELECT ADV_REP_Admin FROM Permissions WHERE Name=@PName AND ADV_REP_Admin=1)
SELECT Cast(1 AS bit) AS RetCode
ELSE
SELECT Cast(0 As bit) AS RetCode
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32616863
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё равно выпадает ошибка
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32616895
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А просто запустить ХП из окна базы пробовал?
Что возвращает?
созданая тобой ХП MySP(название только для примера привел)
может имень другой префикс (не dbo)

Покажи рзультат сборки строки
"dbo.MySP N'" & Forms!PassForm!PassForm_nam & "'"
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32616976
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На сервере отрабатывает правильно, а в коде строка глючит.
Использую её в Mdb, поэтому может не понимает?
Хотя по-моему можно из mdb ссылаться на ХП, а может я ошибаюсь?
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32617061
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Proga
Использую её в Mdb, поэтому может не понимает?

Да.
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32617068
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Proga

Ну вы блин даете !!!

авторНа сервере отрабатывает правильно, а в коде строка глючит.
Использую её в Mdb, поэтому может не понимает?
Хотя по-моему можно из mdb ссылаться на ХП, а может я ошибаюсь?

у mdb currentproject.connection конечно есть но оно соеденено с текущей MDB базой в которой нет процедуры dbo.MySP

создавай новый конекшен к СЕРВЕРУ и тогда запрашивай оттуда хранимку с префиксом DBO
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32617071
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приведенный мной код для ADP

Для применения его в MDB ты должен понять что происходит

CurrentProject.Connection.Execute
это вызов метода Execute объекта ADODB.Connection
вероятно для MDB тебе придется самому создать этот ADODB.Connection
а не использовать готовый CurrentProject.Connection как это происходит в ADP
поскольку создание ADODB.Connection довольно ресурсоемко
лучше его создать один раз,положить ссылку в глобальную переменную
и потом ссылатся через нее
Вызов этого метода в случае если ХП возвращает SELECT
вернет ссылку на рекордсет
Dim rs As ADODB.Recordset
Set rs = CurrentProject.Connection.Execute("dbo.MySP N'" & Forms!PassForm!PassForm_nam & "'")
созданный этим методом
но поскольку мы заранее знаем
что рекордсет имеет всего одну строку с одним столбцом
а точнее нам необходимо только значение нулевого столбца первой строки
то мы не сохраняем ссыку а сразу разименовываем ее
получая конкретное свойство столбца строки этого рекордсета Fields(0).Value

CurrentProject.Connection.Execute("dbo.MySP N'" & Forms!PassForm!PassForm_nam & "'").Fields(0)

Возможно в твоем случае
выбор между DAO и ADO происходит автоматически
(пиоритет зависит от последовательности соотв библиотек в референс)
и ты пытаешся выполнить ХП с помощью DAO.Execute
который может выполнить ХП только через специальный "запрос к серверу"
или ты создал ХП из отдельного приложения (например QA)
а access все это время был открыт
а поскольку пречень ХП он засасывает при загрузке (F5-обновить окно БД)
то текущий конект попросту считает что ХП с таким именем не существует
обрати внимание на префикс ты мог создать ХП vasia.MySP
Ассеss может не показывать префиксы но они от этого никуда не деваются.

Далнейшее в твоих руках :)
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32617092
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нифига, то же самое и в ADP.
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32617143
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А просто запустить ХП из окна базы пробовал?
Что возвращает?
созданая тобой ХП MySP(название только для примера привел)
может имень другой префикс (не dbo)

Покажи рзультат сборки строки
"dbo.MySP N'" & Forms!PassForm!PassForm_nam & "'"
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32617199
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё воткнул.
А вы покажите ConnectionString для подключения SQL через Adodb.Connection
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32617263
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё летает,только остался вопрос
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Dim cn As ADODB.Connection
Dim sqlstr As String
sqlstr = "driver={SQL Server};server=server1;uid=sa;pwd=PWD;database=1111111111111"

Set cn = New ADODB.Connection
cn.ConnectionString = sqlstr
cn.Open
Prava_yes = cn.Execute("dbo.MySP N'" & Forms!PassForm.PassForm_nam & "'").Fields( 0 )
If Prava_yes Then
Open_ADV_REP = "*"
Else
Open_ADV_REP = Trim(Forms!PassForm!PassForm_nam)
End If
А как в программе обойтись без использования pwd=PWD;
Например использовать Виндовую авторизацию
Я имеею ввиду, если я укажу PWD админский, то пользователь получит все права админа, а этого делать не хотелось бы.
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32617318
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ConnectionString
для подключения к MSSQL c виндовой аутентификацией

Provider=Microsoft.Access.OLEDB.10.0;Persist Security Info=False;Data Source=MySQLServerName;Integrated Security=SSPI;Initial Catalog=MyBasaName;Data Provider=SQLOLEDB.1
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32617327
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ща проверю
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32617338
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вернее это CurrentProject.Connection.ConnectionString из из ADP
в своем варианте поменяй в строке
uid=sa;pwd=PWD на ;Trusted_Connection=yes
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32617351
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Открывает, но на
Код: plaintext
1.
Prava_yes = cn.Execute("dbo.MySP N'" & Forms!PassForm.PassForm_name& "'").Fields( 0 )
Выдаёт ошибку такую
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32617359
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Походу это настройки Сервака надо смотреть
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32617364
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык правильно ругается
ты свой виндовый логин на серваке прописал?
а юзера с этим логином в базе завел?
а этому юзеру какие права назначил?
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32617373
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так и знал, вот блин не лёгкая работа, ведь админов нет, помощник админа в отпуске, а я -так себе админ
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32617380
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запускаеш EM
Сервер->Seccurity->Logins
правой кнопкой NewLogin

General->Name - находиш свой логин в домене/машине
ServerRoles->SystemAdministrators

Это для себя
Юзеров надоть потоньше настраивать
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32617393
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Proga: надеюсь, что ты все это делаешь не на "боевой" базе и не на "боевом" сервере.
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32617400
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да это я уже изучил (книжица в 500стр за 3дня), как это делать, я имею ввиду, раньше как было, позвонил, так-то так-то, типа надо сделать, а другой человечек "слушаюсь и повинуюсь", а теперь всё сам да сам.
УЖАС!!!!!!!!!!
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32617407
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Тёмный: Да ладно, всё будет круто!!!
Шучу, что я полоумный что-ли.
У нас их пять штук, "выбирай на вкус"
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32617422
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опаньки, только щас заметил, а сервак то рабочий, хорошо что база, зеркалка рабочей.
2 Тёмный: А что из того, что сервак рабочий, я же не в рабочих базах ковыряюсь?
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32617427
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>другой человечек "слушаюсь и повинуюсь",
Странный у вас админ,
я думал таких не бывает
Обычно они говорят "Угу" и ничего не делают
после третьего звонка начинают раздражатся
после пары пинков(еще поди выковыряй его из норы вечно дверь закрыта)
наконец делают
а на третий раз дают табе все права
чтобы только тебя не видеть
и дальше уже все делаеш сам.
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32617443
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>А что из того, что сервак рабочий
Можно придумать много хороших команд
выполнение которых
чуваком с админскми правами
приведет к возникновению у оного седых волос
а может быть даже пары синяков от разъяренных юзеров

Ups
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32617450
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Был админ такой, понимаешь БЫЛ, а сейчас нет, вот это и раздражает, понимаешь.
Вот я например сижу умные книжки про SQL, Access2003, ADP,ASP 3.0, а тут приходит тётечка и говорит "А у меня не печатает", вот тебе и великие материи, далеки мы ребята от народа, далеки.
А это уже наводит на мысль.(походу крыша едет, я раньше про таких думал, во люди больные, мозги набикрень, а сам взял и вступил в их ряды, во жизнь как складывается).
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32617455
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И сломанных пальцев, дабы больше никогда не набирал всякие такие команды.
А действительно, что с того, что ты сейчас ковыряешься в настройке Security боевого сервера. Мелочи какие...
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32617458
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПРОШУ привести хорошие команды
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32617469
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
/topic/8535#808190
:)
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32617482
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При попытке создать юзера всплыло,что это такое
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32617508
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин ну почти по-русски же написано! Что здесь непонятного?
Код: plaintext
Одна или несколько баз данных недоступны и не могут быть показаны в етой самой эксес таб.
...
Рейтинг: 0 / 0
Как уйти от DlookUP
    #32617512
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да перевёл я, вопрос в дргом, что за хрень, с чего такое может быть
...
Рейтинг: 0 / 0
50 сообщений из 50, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как уйти от DlookUP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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