|
|
|
Параметры запуска БД - программно
|
|||
|---|---|---|---|
|
#18+
Вот такая задача. При запуске базы данных в зависимости от того, кто подключился - админ или юзер должны либо оставаться, либо исчезать окно базы данных, основное меню и т.д. Т.е. это надо задать программно. Форма по проверке подключившегося есть, в Гетце на с.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, "Форма_проверки" указать, то ведь аргументы задать нельзя? И будет себе висеть, глаза мозолить. Существует ли какой-н. способ при входе в защищенную БД в поле "логин" выводить не последнее имя, а, скажем, поле со списком логинов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2004, 20:24:44 |
|
||
|
Параметры запуска БД - программно
|
|||
|---|---|---|---|
|
#18+
КДВ хелпе нашел про Sub SetStartupProperties(). Там как бы из двух частей: Sub и Function. Для особо одаренных объясните, куда конкретно прописывать эти Sub и Function? В модуль стартовой формы или в отдельный стандартный? По вкусу, без разницы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2004, 00:39:12 |
|
||
|
Параметры запуска БД - программно
|
|||
|---|---|---|---|
|
#18+
Ну а со второй частью вопроса (параметры стартовой формы, список логинов)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2004, 05:43:45 |
|
||
|
Параметры запуска БД - программно
|
|||
|---|---|---|---|
|
#18+
я бы тоже засунул в autoxec ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2004, 09:53:25 |
|
||
|
Параметры запуска БД - программно
|
|||
|---|---|---|---|
|
#18+
Для тех, кто совсем на бронепоезде, объясните, пожалуйста. Сделал форму 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 появляется, а ничего, кроме главного меню, нет! Во-первых, чего это от админа все прячется? Во-вторых, ну тогда бы уж все пряталось, а то ведь главное меню осталось! Захожу как "химик" - таже песня. Подскажите, что делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2004, 18:34:54 |
|
||
|
Параметры запуска БД - программно
|
|||
|---|---|---|---|
|
#18+
КД 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) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2004, 00:13:57 |
|
||
|
Параметры запуска БД - программно
|
|||
|---|---|---|---|
|
#18+
Насчет изменения с DAO – спасибо, работает! А все-таки, почему же админу тоже все скрывают? Ошибка в цикле? Или надо как-то напрямую запретить обновление параметров запуска, если админ подключился? Или это только из-за того, что форма не в AutoExec? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2004, 18:12:32 |
|
||
|
Параметры запуска БД - программно
|
|||
|---|---|---|---|
|
#18+
Народ, помогите! Или предложите другой путь решения подобной проблемы. Пожалуйста! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2004, 14:28:01 |
|
||
|
Параметры запуска БД - программно
|
|||
|---|---|---|---|
|
#18+
Ау! Владимир Са-а-аныч! Ло-о-ох! Выскажите мнение свое хотя бы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2004, 06:53:39 |
|
||
|
Параметры запуска БД - программно
|
|||
|---|---|---|---|
|
#18+
Ну прямо какое-то "молчание ягнят"! Это я о модераторах. Я вроде по теме вопрос задал, а все то ли отмолчаться решили, то ли не знаю что. Лучше написать "я не знаю" или "вопрос принципиально неразрешимый"! Вроде бы многие программно устанавливали параметры запуска. Они себе какие отходные пути представляли для дальнейшей работы над программой, если она, как и всем остальным, все скрывала? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2004, 05:56:29 |
|
||
|
Параметры запуска БД - программно
|
|||
|---|---|---|---|
|
#18+
Непонятно, что хочется. Меняем параметры запуска при входе и хотим увидеть, к примеру, окно базы данных, которое ранее было скрыто? В хелпе ясно сказано: Свойство StartupShowDBWindow определяет, выводится ли окно базы данных на экран при открытии базы данных. ................................ ................................. Настройка данного свойства вступает в силу при следующем запуске приложения. и так со всеми параметрами запуска ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2004, 06:46:29 |
|
||
|
Параметры запуска БД - программно
|
|||
|---|---|---|---|
|
#18+
КДВроде бы многие программно устанавливали параметры запуска. Они себе какие отходные пути представляли для дальнейшей работы над программой, если она, как и всем остальным, все скрывала? Всегда разделяю базу. Интерфейс правлю в своем экземпляре mdb и клиенту выкладываю уже защищенный mde. И с моей точки зрения править на ходу боевую базу - нехорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2004, 07:41:48 |
|
||
|
Параметры запуска БД - программно
|
|||
|---|---|---|---|
|
#18+
Да что хочется? Известно что - чтоб работало. А если не работает - то понять почему. В хелпе, конечно, все ясно сказано. Просто непонятно. Если есть возможность выбора между категорией пользователей и это работает, то почему нельзя после определения категорий для некоторых из них задать параметры запуска? Или, если быть точным, не задавать их для админа? Нигде ведь в хелпе не сказано, что если все инструкции в 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.). Вот только как это реализовать - проверку логина и пароля? Или все-таки это все не прокатит и можно только разделять и пользователю давать обновленную интерфейсную часть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2004, 18:58:55 |
|
||
|
Параметры запуска БД - программно
|
|||
|---|---|---|---|
|
#18+
Так, очередной гений пользоваться поиском не может. А если попробовать. Я вот за 2 часа всю эту бадягу налобал, только лучше, чтобы был сервак, тогда с правами по проще, хотя можно и без него. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2004, 19:08:31 |
|
||
|
Параметры запуска БД - программно
|
|||
|---|---|---|---|
|
#18+
Уважаемый Proga! Я, конечно, не гений, и не стоит над этим подтрунивать. Не все рождаются с MSDN в голове. Ни по образованию, ни по работе я с программированием дела вообще не имел. И мои попытки - исключительно собственная инициатива. А если Вы так хорошо все знаете, то вместо того, чтобы указывать человеку, что он чего-то не знает (а кто все знает?), лучше дать ссылку где находится то, о чем спрашивают. Незнание чего-то осуждать не следует, другое дело когда нет стремления узнать что-то. И вот еще такой вопрос. Похоже, что мне мою базу придется делать сетевой. Я так понял, что Access для этого не подходит (или все-таки можно?). Чем лучше воспользоваться для написания (или можно "перевалить" существующую Access'овскую?) - MS SQL Server или Delphi (другие варианты?)? Поскольку мне придется осваивать все это с нуля, я прошу дать ссылку на литературу, которая может помочь. Видел двухтомник по MS SQL Server 2000, кажется, Бэйна, но купить так сразу не рискнул. Буду признателен за помощь. Как я понял, база в варианте SQL Server может существовать и на одном компьютере? и тогда многие проблемы, в том числе защиты, решаются проще? P.S. (долго гадал, что же такое З.Ы., потом дошло) Трудно мне понимать специфичный жаргон программистов (имхо и т.д.), так что прошу прощения, "налобал" - это "сделал"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2004, 20:16:13 |
|
||
|
Параметры запуска БД - программно
|
|||
|---|---|---|---|
|
#18+
авторИ вот еще такой вопрос. Похоже, что мне мою базу придется делать сетевой. Я так понял, что Access для этого не подходит (или все-таки можно?). Подходит, но, если с программой будет работать больше десятка (цифра с потолка) пользователей, либо база будет больше сотни (рядом с первой была нарисована) мегабайт, то лучше не надо экспериментировать, может быть себе дороже. авторЧем лучше воспользоваться для написания (или можно "перевалить" существующую Access'овскую?) - MS SQL Server или Delphi (другие варианты?)? Что знаешь. Если акцесс хоть немного знаешь, а в MSSQL и пр. ни в зуб ногой, то лучше, имхо, на чистом Акцессе (с учетом предыдущего высказывания). автор Поскольку мне придется осваивать все это с нуля, я прошу дать ссылку на литературу, которая может помочь. Видел двухтомник по MS SQL Server 2000, кажется, Бэйна, но купить так сразу не рискнул. Буду признателен за помощь. Как я понял, база в варианте SQL Server может существовать и на одном компьютере? и тогда многие проблемы, в том числе защиты, решаются проще? По литературе ничего не могу сказать, а многие возможные проблемы, особенно защиты, с MSSQL решить действительно гораздо проще (если они вообще возникнут). Да, MSSQL и программа могут жить на одном к-ре, обычно для этого используют MSDE (поиск по этому и MSSQL форуму). Однака все-таки очень желательно наличие человека, который установит и настроит сервер. авторP.S. (долго гадал, что же такое З.Ы., потом дошло) Трудно мне понимать специфичный жаргон программистов (имхо и т.д.), так что прошу прощения, "налобал" - это "сделал"? Видимо, да. Имхо - в вольном переводе: "мне кажется". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2004, 21:32:12 |
|
||
|
Параметры запуска БД - программно
|
|||
|---|---|---|---|
|
#18+
Ни MS SQL Server, ни Delphi я не знаю. Но я и Access когда-то совсем не знал, а первую базу делал на FoxPro 2.6, помните еще такой? Потом стал осваивать Access, недавно вот еще и VBA. Так что полагаю, освоить можно все, было бы желание и уверенность в том, что освоенное существенно облегчит жизнь. А за помощь - спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2004, 08:09:26 |
|
||
|
Параметры запуска БД - программно
|
|||
|---|---|---|---|
|
#18+
что касается MS SQL, то лучше чем его родной хелп ничего нету... Ну, я не видел, да и не видел, чтоб кто-нибудь что-нибудь из литературы советовал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2004, 09:08:05 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32792262&tid=1670200]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
| others: | 200ms |
| total: | 371ms |

| 0 / 0 |
