powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / При программном задании заголовка окна приложения слетает меню
6 сообщений из 6, страница 1 из 1
При программном задании заголовка окна приложения слетает меню
    #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
При программном задании заголовка окна приложения слетает меню
    #33202925
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КДЗ
Все хорошо, заголовок содержит пользователя.
Но! У меня (админа) в созданном меню "Private" куда-то делась вкладка "Сервис", а также некоторые команды в других вкладках, например "Отобразить" в "Окно".
В чем причина?
Тут:
ChangeProperty "AllowFullMenus", dbBoolean, False
...
Рейтинг: 0 / 0
При программном задании заголовка окна приложения слетает меню
    #33203004
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так оно у меня вроде и раньше в таком состоянии -ChangeProperty "AllowFullMenus", dbBoolean, False
висело, и все было на месте. А для отображения созданного специального меню на загрузочной форме висела процедурка, определяющая, кто подключается:

If acbAmMemberOfGroup("Admins") Then

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

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


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