powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Параметры запуска БД - программно
19 сообщений из 19, страница 1 из 1
Параметры запуска БД - программно
    #32776352
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот такая задача.
При запуске базы данных в зависимости от того, кто подключился - админ или юзер должны либо оставаться, либо исчезать окно базы данных, основное меню и т.д. Т.е. это надо задать программно. Форма по проверке подключившегося есть, в Гетце на с.492 подробно написано как это сделать. Теперь, видимо, надо указать, чтобы запуск приложения начинался с нее.
Затем, наверное, надо в модуле этой формы написать код, убирающий все вышеозначенное.
Что-то вроде:

If acbAmMemberOfGroup("Admins") Then
MsgBox "Поздравляем! Вы - админ и Вам тут все можно!", vbOKOnly

If acbAmMemberOfGroup("Users") Then
'пошла настройка всего, чего надо

В хелпе нашел про Sub SetStartupProperties(). Там как бы из двух частей: Sub и Function. Для особо одаренных объясните, куда конкретно прописывать эти Sub и Function? В модуль стартовой формы или в отдельный стандартный?

С формой проверки подключившегося все ясно:
Private Sub Form_Open(Cancel As Integer)
If acbAmMemberOfGroup("Admins") Then
'прописываем что надо

If acbAmMemberOfGroup("Users") Then
'пошла настройка всего, чего надо

А в стандартном модуле
Public Function acbAmMemberOfGroup(strGroup As String)
ну и далее

Да, и еще. Можно ли как нибудь сделать, чтобы эта форма, с которой все начинается, запускалась как скрытая? Способ открыть форму как скрытую методом DoCmd я знаю. Но это, по-моему, работает, если только скрываемую форму открывать из другой. А вот как сделать скрытой стартовую форму? Может быть, засунуть ее в макрос AutoExec, а там открыть методом DoCmd с указанием acHidden? Потому как если ее в ChangeProperty "StartupForm", DB_Text, "Форма_проверки" указать, то ведь аргументы задать нельзя? И будет себе висеть, глаза мозолить.
Существует ли какой-н. способ при входе в защищенную БД в поле "логин" выводить не последнее имя, а, скажем, поле со списком логинов?
...
Рейтинг: 0 / 0
Параметры запуска БД - программно
    #32776449
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КДВ хелпе нашел про Sub SetStartupProperties(). Там как бы из двух частей: Sub и Function. Для особо одаренных объясните, куда конкретно прописывать эти Sub и Function? В модуль стартовой формы или в отдельный стандартный?

По вкусу, без разницы.
...
Рейтинг: 0 / 0
Параметры запуска БД - программно
    #32776493
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну а со второй частью вопроса (параметры стартовой формы, список логинов)?
...
Рейтинг: 0 / 0
Параметры запуска БД - программно
    #32776708
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я бы тоже засунул в autoxec
...
Рейтинг: 0 / 0
Параметры запуска БД - программно
    #32778303
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для тех, кто совсем на бронепоезде, объясните, пожалуйста.
Сделал форму frmProverka, в модуле которой происходит обращение к стандартному модулю
Public Function acbAmMemberOfGroup(strGroup As String), где проверяется группа, к которой принадлежит открывший БД:

Private Sub Form_Open(Cancel As Integer)
If acbAmMemberOfGroup("Admins") Then
MsgBox "Администратор", vbOKOnly
ElseIf acbAmMemberOfGroup("Chemicals") Then
MsgBox "Химик", vbOKOnly
Call SetStartupProperties
ElseIf acbAmMemberOfGroup("Users") Then
MsgBox "Пользователь", vbOKOnly
Call SetStartupProperties
Else
MsgBox "Не знаю таких", vbOKOnly
Call SetStartupProperties
End If
End Sub

Сделал другой стандартный модуль, устанавливающий параметры запуска
(в хелпе нашел):

Sub SetStartupProperties( )

ChangeProperty "StartupForm", dbText, "frmProverka"
ChangeProperty "StartupShowDBWindow", dbBoolean, False
ChangeProperty "StartupShowStatusBar", dbBoolean, False
ChangeProperty "AllowBuiltinToolbars", dbBoolean, False
ChangeProperty "AllowFullMenus", dbBoolean, True
ChangeProperty "AllowBreakIntoCode", dbBoolean, False
ChangeProperty "AllowSpecialKeys", dbBoolean, True
ChangeProperty "AllowBypassKey", dbBoolean, True

End Sub

Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer

Dim dbs As Database, prp As Property
Const conPropNotFoundError = 3270

Set dbs = CurrentDb
On Error GoTo Change_Err
dbs.Properties(strPropName) = varPropValue
ChangeProperty = True

Change_Bye:
Exit Function

Change_Err:
If Err = conPropNotFoundError Then ' Свойство не найдено.
Set prp = dbs.CreateProperty(strPropName, varPropType, varPropValue)
dbs.Properties.Append prp
Resume Next
Else
' Неизвестная ошибка.
ChangeProperty = False
Resume Change_Bye
End If
End Function

Захожу в базу как член группы "Admins", запускаю форму. Начинаю отладку кода в стандартном модуле. На строках Sub'а
ChangeProperty "AllowBreakIntoCode", dbBoolean, False
ChangeProperty "AllowBypassKey", dbBoolean, True
вылетает ошибка '13' Type mismatch. Если эти строки закомментировать, то все нормально. Почему ошибка и почему именно на этих строках?

Установил frmProverka как стартовую в диалоговом окне "Параметры запуска". Захожу как админ, MsgBox появляется, а ничего, кроме главного меню, нет!
Во-первых, чего это от админа все прячется? Во-вторых, ну тогда бы уж все пряталось, а то ведь главное меню осталось!
Захожу как "химик" - таже песня.
Подскажите, что делать?
...
Рейтинг: 0 / 0
Параметры запуска БД - программно
    #32778574
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КД ChangeProperty "AllowBreakIntoCode", dbBoolean, False
ChangeProperty "AllowBypassKey", dbBoolean, True
вылетает ошибка '13' Type mismatch. Если эти строки закомментировать, то все нормально. Почему ошибка и почему именно на этих строках?

Думаю, что эти свойства создаются, поскольку в базе их нет.
а в процедуре ChangeProperty из хелпа нужно
Dim dbs As Database, prp As Property изменить на
Dim dbs As DAO.Database, prp As DAO.Property
и подключить библиотеку DAO
(поясняю - этот кусок в хелпе кочует с А95, когда в акессе была только одна библиотека доступа к данным DAO, а с А2000 по умолчанию подключается только библиотека доступа к данным ADO)
...
Рейтинг: 0 / 0
Параметры запуска БД - программно
    #32780505
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Насчет изменения с DAO – спасибо, работает! А все-таки, почему же админу тоже все скрывают? Ошибка в цикле? Или надо как-то напрямую запретить обновление параметров запуска, если админ подключился? Или это только из-за того, что форма не в AutoExec?
...
Рейтинг: 0 / 0
Параметры запуска БД - программно
    #32780915
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, помогите! Или предложите другой путь решения подобной проблемы. Пожалуйста!
...
Рейтинг: 0 / 0
Параметры запуска БД - программно
    #32783337
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ау! Владимир Са-а-аныч! Ло-о-ох!
Выскажите мнение свое хотя бы!
...
Рейтинг: 0 / 0
Параметры запуска БД - программно
    #32790334
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну прямо какое-то "молчание ягнят"! Это я о модераторах.
Я вроде по теме вопрос задал, а все то ли отмолчаться решили, то ли не знаю что. Лучше написать "я не знаю" или "вопрос принципиально неразрешимый"!
Вроде бы многие программно устанавливали параметры запуска. Они себе какие отходные пути представляли для дальнейшей работы над программой, если она, как и всем остальным, все скрывала?
...
Рейтинг: 0 / 0
Параметры запуска БД - программно
    #32790360
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Непонятно, что хочется.
Меняем параметры запуска при входе и хотим увидеть, к примеру, окно базы данных, которое ранее было скрыто?
В хелпе ясно сказано:

Свойство StartupShowDBWindow определяет, выводится ли окно базы данных на экран при открытии базы данных. ................................
.................................
Настройка данного свойства вступает в силу при следующем запуске приложения.

и так со всеми параметрами запуска
...
Рейтинг: 0 / 0
Параметры запуска БД - программно
    #32790395
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КДВроде бы многие программно устанавливали параметры запуска. Они себе какие отходные пути представляли для дальнейшей работы над программой, если она, как и всем остальным, все скрывала?
Всегда разделяю базу. Интерфейс правлю в своем экземпляре mdb и клиенту выкладываю уже защищенный mde. И с моей точки зрения править на ходу боевую базу - нехорошо.
...
Рейтинг: 0 / 0
Параметры запуска БД - программно
    #32792250
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да что хочется? Известно что - чтоб работало. А если не работает - то понять почему.
В хелпе, конечно, все ясно сказано. Просто непонятно. Если есть возможность выбора между категорией пользователей и это работает, то почему нельзя после определения категорий для некоторых из них задать параметры запуска? Или, если быть точным, не задавать их для админа? Нигде ведь в хелпе не сказано, что если все инструкции в If...Then...Else и выполняются правильно, то параметров запуска это не касается и они будут заданы везде, где бы ни находились. В части, касающейся админа, св-во StartupShowDBWindow не задействовано:
Private Sub Form_Open(Cancel As Integer)
If acbAmMemberOfGroup("Admins") Then
MsgBox "Администратор", vbOKOnly
ElseIf acbAmMemberOfGroup("Chemicals") Then
MsgBox "Химик", vbOKOnly
Call SetStartupProperties
ElseIf acbAmMemberOfGroup("Users") Then
MsgBox "Пользователь", vbOKOnly
Call SetStartupProperties
Else
MsgBox "Не знаю таких", vbOKOnly
Call SetStartupProperties
End If
End Sub

Или Access'у плевать, кто входит. И если хоть-где нибудь сказано, что окно базы надо скрыть, то скроет? А если я вызов этого свойства привяжу, ну, скажем, к клику какой-н. кнопки в подчиненной форме, до которой еще добраться надо, - все равно вызовет еще при входе? А если нет, тогда, может быть, так сделать: загружается все как обычно (все видно, все панели есть, все меню есть), т.е. сама процедура ВХОДА в приложение проходит без задания параметра. Потом вылетает форма с просьбой ввести логин и пароль. Форму закрыть, допустим, нельзя, пока не введешь логин и пароль (а если и закрыть, то и приложение закроется). Если админ - и дальше все видно, если не админ - все скрывается (ну и какие там установки для форм etc.). Вот только как это реализовать - проверку логина и пароля?

Или все-таки это все не прокатит и можно только разделять и пользователю давать обновленную интерфейсную часть?
...
Рейтинг: 0 / 0
Параметры запуска БД - программно
    #32792262
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так, очередной гений пользоваться поиском не может.
А если попробовать.
Я вот за 2 часа всю эту бадягу налобал, только лучше, чтобы был сервак, тогда с правами по проще, хотя можно и без него.
...
Рейтинг: 0 / 0
Параметры запуска БД - программно
    #32792753
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемый Proga!
Я, конечно, не гений, и не стоит над этим подтрунивать. Не все рождаются с MSDN в голове. Ни по образованию, ни по работе я с программированием дела вообще не имел. И мои попытки - исключительно собственная инициатива. А если Вы так хорошо все знаете, то вместо того, чтобы указывать человеку, что он чего-то не знает (а кто все знает?), лучше дать ссылку где находится то, о чем спрашивают. Незнание чего-то осуждать не следует, другое дело когда нет стремления узнать что-то.
И вот еще такой вопрос. Похоже, что мне мою базу придется делать сетевой. Я так понял, что Access для этого не подходит (или все-таки можно?). Чем лучше воспользоваться для написания (или можно "перевалить" существующую Access'овскую?) - MS SQL Server или Delphi (другие варианты?)? Поскольку мне придется осваивать все это с нуля, я прошу дать ссылку на литературу, которая может помочь. Видел двухтомник по MS SQL Server 2000, кажется, Бэйна, но купить так сразу не рискнул. Буду признателен за помощь.
Как я понял, база в варианте SQL Server может существовать и на одном компьютере? и тогда многие проблемы, в том числе защиты, решаются проще?
P.S. (долго гадал, что же такое З.Ы., потом дошло) Трудно мне понимать специфичный жаргон программистов (имхо и т.д.), так что прошу прощения, "налобал" - это "сделал"?
...
Рейтинг: 0 / 0
Параметры запуска БД - программно
    #32792773
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИ вот еще такой вопрос. Похоже, что мне мою базу придется делать сетевой. Я так понял, что Access для этого не подходит (или все-таки можно?).

Подходит, но, если с программой будет работать больше десятка (цифра с потолка) пользователей, либо база будет больше сотни (рядом с первой была нарисована) мегабайт, то лучше не надо экспериментировать, может быть себе дороже.

авторЧем лучше воспользоваться для написания (или можно "перевалить" существующую Access'овскую?) - MS SQL Server или Delphi (другие варианты?)?

Что знаешь. Если акцесс хоть немного знаешь, а в MSSQL и пр. ни в зуб ногой, то лучше, имхо, на чистом Акцессе (с учетом предыдущего высказывания).

автор Поскольку мне придется осваивать все это с нуля, я прошу дать ссылку на литературу, которая может помочь. Видел двухтомник по MS SQL Server 2000, кажется, Бэйна, но купить так сразу не рискнул. Буду признателен за помощь.
Как я понял, база в варианте SQL Server может существовать и на одном компьютере? и тогда многие проблемы, в том числе защиты, решаются проще?

По литературе ничего не могу сказать, а многие возможные проблемы, особенно защиты, с MSSQL решить действительно гораздо проще (если они вообще возникнут). Да, MSSQL и программа могут жить на одном к-ре, обычно для этого используют MSDE (поиск по этому и MSSQL форуму). Однака все-таки очень желательно наличие человека, который установит и настроит сервер.

авторP.S. (долго гадал, что же такое З.Ы., потом дошло) Трудно мне понимать специфичный жаргон программистов (имхо и т.д.), так что прошу прощения, "налобал" - это "сделал"?
Видимо, да. Имхо - в вольном переводе: "мне кажется".
...
Рейтинг: 0 / 0
Параметры запуска БД - программно
    #32792844
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ни MS SQL Server, ни Delphi я не знаю. Но я и Access когда-то совсем не знал, а первую базу делал на FoxPro 2.6, помните еще такой? Потом стал осваивать Access, недавно вот еще и VBA. Так что полагаю, освоить можно все, было бы желание и уверенность в том, что освоенное существенно облегчит жизнь. А за помощь - спасибо!
...
Рейтинг: 0 / 0
Параметры запуска БД - программно
    #32793294
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что касается MS SQL, то лучше чем его родной хелп ничего нету... Ну, я не видел, да и не видел, чтоб кто-нибудь что-нибудь из литературы советовал
...
Рейтинг: 0 / 0
Параметры запуска БД - программно
    #32794867
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Итак, все-таки, SQL? А есть ли русскоязычная версия с нормальным хелпом?
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Параметры запуска БД - программно
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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