Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / При программном задании заголовка окна приложения слетает меню / 6 сообщений из 6, страница 1 из 1
05.08.2005, 00:50
    #33202894
КД
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При программном задании заголовка окна приложения слетает меню
Задача: создать заголовок приложения, в котором прописывается открывший его пользователь
Помещаем необходимый код (выделено зеленым) в модуль параметров загрузки базы
Sub SetStartupProperties()
Dim intX As Integer
Rem Const DB_Text As Long = 10

ChangeProperty "StartupForm", dbText, "frmZastavka0"
ChangeProperty "StartupShowDBWindow", dbBoolean, False
ChangeProperty "StartupShowStatusBar", dbBoolean, False
ChangeProperty "AllowBuiltinToolbars", dbBoolean, False
ChangeProperty "AllowFullMenus", dbBoolean, False
ChangeProperty "AllowBreakIntoCode", dbBoolean, False
ChangeProperty "AllowSpecialKeys", dbBoolean, False
ChangeProperty "AllowBypassKey", dbBoolean, False
ChangeProperty "AllowShortcutMenus", dbBoolean, False

intX = AddAppProperty("AppTitle", dbText, "АНАЛИЗ РЕЗУЛЬТАТОВ. Сеанс: & CurrentUser() & ";")
Rem intX = AddAppProperty("AppIcon", DB_Text, "C:\Windows\Cars.bmp")
Application.RefreshTitleBar
End Sub

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

Dim dbs As DAO.Database
Dim prp As DAO.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, varPrchkype, varPropValue)
dbs.Properties.Append prp
Resume Next
Else
' Неизвестная ошибка
ChangeProperty = False
Resume Change_Bye
End If
End Function

Function AddAppProperty(strName As String, varType As Variant, varValue As Variant) As Integer
Rem Dim dbs As Object, prp As Variant
Dim dbs As DAO.Database
Dim prp As DAO.Property
Const conPropNotFoundError = 3270

Set dbs = CurrentDb
On Error GoTo AddProp_Err
dbs.Properties(strName) = varValue
AddAppProperty = True

AddProp_Bye:
Exit Function

AddProp_Err:
If Err = conPropNotFoundError Then
Set prp = dbs.CreateProperty(strName, varType, varValue)
dbs.Properties.Append prp
Resume
Else
AddAppProperty = False
Resume AddProp_Bye
End If
End Function

Все хорошо, заголовок содержит пользователя.
Но! У меня (админа) в созданном меню "Private" куда-то делась вкладка "Сервис", а также некоторые команды в других вкладках, например "Отобразить" в "Окно".
В чем причина?
...
Рейтинг: 0 / 0
05.08.2005, 01:45
    #33202925
Alexander G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При программном задании заголовка окна приложения слетает меню
КДЗ
Все хорошо, заголовок содержит пользователя.
Но! У меня (админа) в созданном меню "Private" куда-то делась вкладка "Сервис", а также некоторые команды в других вкладках, например "Отобразить" в "Окно".
В чем причина?
Тут:
ChangeProperty "AllowFullMenus", dbBoolean, False
...
Рейтинг: 0 / 0
05.08.2005, 07:37
    #33203004
КД
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При программном задании заголовка окна приложения слетает меню
Так оно у меня вроде и раньше в таком состоянии -ChangeProperty "AllowFullMenus", dbBoolean, False
висело, и все было на месте. А для отображения созданного специального меню на загрузочной форме висела процедурка, определяющая, кто подключается:

If acbAmMemberOfGroup("Admins") Then

DoCmd.ShowToolbar "Private", acToolbarYes
и т.д.
AllowFullMenus - это, как я понимаю, полное меню, которое по умолчанию висит: Файл, Правка и т.д. Какое отношение оно имеет к созданному мной специальному?
...
Рейтинг: 0 / 0
05.08.2005, 07:51
    #33203013
Alexander G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При программном задании заголовка окна приложения слетает меню
КДТак оно у меня вроде и раньше в таком состоянии -ChangeProperty "AllowFullMenus", dbBoolean, False
висело, и все было на месте.
Если бы это было так, то у стандартного меню базы было бы всего три пункта- Файл, Окно и Справка. Попробуйте на тестовой базке снять эту галочку.

Поскольку вы, видимо, просто скопировали остальные пункты (Сервис, Правка...) в свое меню, то они тоже отключаются.
...
Рейтинг: 0 / 0
05.08.2005, 08:56
    #33203073
КД
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При программном задании заголовка окна приложения слетает меню
То Alexander G
Спасибо! Переставил на True, помогло. Но когда первый раз сам вошел под своим именем заголовок поменялся, а когда в другой раз под другим - нет.
...
Рейтинг: 0 / 0
05.08.2005, 22:37
    #33205069
КД
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При программном задании заголовка окна приложения слетает меню
"первый раз сам вошел под своим именем заголовок поменялся, а когда в другой раз под другим - нет"
Нашел! Гетц, Сб. рецептов, с.229. Копируйте модуль basCaption, на загрузку начальной формы (я так сделал) вешаем:
Call acbSetAccessCaption("Тут пишем что нужно. Сеанс: " & CurrentUser() & "")
Пихать этот вызов в общий модуль, по-видимому, бесполезно. По крайней мере, у меня из модуля параметров загрузки БД он не вызывался.
И чтобы делали такие дураки как я, не будь Гетца? Кстати, о Гетце. Кто-н. смотрел 2-е изд. "Сборника рецептов", чем и насколько отличается от первого?
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / При программном задании заголовка окна приложения слетает меню / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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