Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Скрыть режим конструктора и области навигации в Access с помощью VBA / 11 сообщений из 11, страница 1 из 1
08.10.2015, 18:10
    #39072279
msleg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрыть режим конструктора и области навигации в Access с помощью VBA
Добрый день! Подскажите пожалуйста, как мне с помощью VBA сделать недоступным режим конструктора для формы? Ситуация следующая есть форма авторизации, которая запускается при открытии БД. Меню скрыто. Если нажать правую кнопку мыши по форме, выскакивает всплывающее окно, где есть возможно войти в режим конструктора формы(( Какие есть варианты решения?
...
Рейтинг: 0 / 0
08.10.2015, 18:22
    #39072291
msleg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрыть режим конструктора и области навигации в Access с помощью VBA
Нашел, как скрыть контекстное меню, которое открывается при нажатии правой кнопки мышки на форме.

Код: vbnet
1.
Forms(НАЗВАНИЕ_ФОРМЫ).shortcutmenu=false 
...
Рейтинг: 0 / 0
08.10.2015, 18:28
    #39072296
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрыть режим конструктора и области навигации в Access с помощью VBA
msleg...сделать недоступным режим конструктора для формы?...Какие есть варианты решения?Пользователю работать с mde/ade/accde.
...
Рейтинг: 0 / 0
08.10.2015, 20:05
    #39072376
msleg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрыть режим конструктора и области навигации в Access с помощью VBA
еще нашел интересную инфу http://hiprog.com/index.php?option=com_content&task=view&id=60&Itemid=35
...
Рейтинг: 0 / 0
08.10.2015, 20:05
    #39072378
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрыть режим конструктора и области навигации в Access с помощью VBA
msleg... как мне с помощью VBA сделать недоступным режим конструктора для формы?...

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub Form_Load()
    Dim i As Integer
    For Each cbar In CommandBars
        For i = 1 To cbar.Controls.Count
            If InStr(1, UCase(cbar.Controls.Item(i).Caption), "КОНСТРУКТОР") > 0 Then
                cbar.Controls.Item(i).Enabled = True
            End If
        Next i
    Next cbar
End Sub
...
Рейтинг: 0 / 0
08.10.2015, 20:07
    #39072380
Скрыть режим конструктора и области навигации в Access с помощью VBA
msleg,

Для скрытия панели навигации
Код: vbnet
1.
2.
3.
4.
5.
Public Function hideNavePan()
'Скрываем боковую панель навигации
 DoCmd.SelectObject acTable, , True
 DoCmd.RunCommand acCmdWindowHide
End Function



А вообще лучше запустить базу в рантайме.
Для этого создайте ярлык для своей базы
в поле объект после пути к файлу добавте /runtime
...
Рейтинг: 0 / 0
08.10.2015, 20:10
    #39072383
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрыть режим конструктора и области навигации в Access с помощью VBA
guest_rusimportmsleg... как мне с помощью VBA сделать недоступным режим конструктора для формы?...

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub Form_Load()
    Dim i As Integer
    For Each cbar In CommandBars
        For i = 1 To cbar.Controls.Count
            If InStr(1, UCase(cbar.Controls.Item(i).Caption), "КОНСТРУКТОР") > 0 Then
                cbar.Controls.Item(i).Enabled = True
            End If
        Next i
    Next cbar
End Sub



fix

cbar.Controls.Item(i).Enabled = False
...
Рейтинг: 0 / 0
08.10.2015, 20:46
    #39072397
msleg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрыть режим конструктора и области навигации в Access с помощью VBA
Нашел как обойти SHIFT при открытии базы данных, может кому-нибудь понадобиться

https://support.office.com/ru-ru/article/Обход-параметров-запуска-при-открытии-базы-данных-f19b5792-5a85-4516-89b2-43a10f60f1c1


есть свойство AllowBypassKey - https://support.office.com/en-us/article/AllowBypassKey-Property-30ab5c36-51df-41a0-a955-b0f1deac517b

а еще можно, чтобы наверняка следующими функциями

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
Function ap_DisableShift()
'This function disable the shift at startup. This action causes
'the Autoexec macro and Startup properties to always be executed.

On Error GoTo errDisableShift

Dim db As DAO.Database
Dim prop as DAO.Property
Const conPropNotFound = 3270

Set db = CurrentDb()

'This next line disables the shift key on startup.
db.Properties("AllowByPassKey") = False

'The function is successful.
Exit Function

errDisableShift:
'The first part of this error routine creates the "AllowByPassKey
'property if it does not exist.
If Err = conPropNotFound Then
Set prop = db.CreateProperty("AllowByPassKey", _
dbBoolean, False)
db.Properties.Append prop
Resume Next
Else
MsgBox "Function 'ap_DisableShift' did not complete successfully."
Exit Function
End If

End Function



Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
Function ap_EnableShift()
'This function enables the SHIFT key at startup. This action causes
'the Autoexec macro and the Startup properties to be bypassed
'if the user holds down the SHIFT key when the user opens the database.

On Error GoTo errEnableShift

Dim db as DAO.Database
Dim prop as DAO.Property
Const conPropNotFound = 3270

Set db = CurrentDb()

'This next line of code disables the SHIFT key on startup.
db.Properties("AllowByPassKey") = True

'function successful
Exit Function

errEnableShift:
'The first part of this error routine creates the "AllowByPassKey
'property if it does not exist.
If Err = conPropNotFound Then
Set prop = db.CreateProperty("AllowByPassKey", _
dbBoolean, True)
db.Properties.Append prop
Resume Next
Else
MsgBox "Function 'ap_DisableShift' did not complete successfully."
Exit Function
End If

End Function



оригинал по ссылке https://support.microsoft.com/en-us/kb/826765
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
27.09.2018, 10:31
    #39709084
Rikozenit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрыть режим конструктора и области навигации в Access с помощью VBA
guest_rusimport
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub Form_Load()
    Dim i As Integer
    For Each cbar In CommandBars
        For i = 1 To cbar.Controls.Count
            If InStr(1, UCase(cbar.Controls.Item(i).Caption), "КОНСТРУКТОР") > 0 Then
                cbar.Controls.Item(i).Enabled = False
            End If
        Next i
    Next cbar
End Sub



Доброго дня! У меня в режиме отладчика при пошаговом выполнении строка
Код: vbnet
1.
cbar.Controls.Item(i).Enabled = False

просто проскакивает (так и должно быть?), а цикл крутится до бесконечности. Что может быть не так?
Спасибо!
...
Рейтинг: 0 / 0
27.09.2018, 10:50
    #39709106
zimkon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрыть режим конструктора и области навигации в Access с помощью VBA
Rikozenit,
Это писалось для 2003 акса, в другой версии может быть по-другому. У меня 2003-й. Может кто другой поможет.
...
Рейтинг: 0 / 0
27.09.2018, 11:11
    #39709139
Rikozenit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрыть режим конструктора и области навигации в Access с помощью VBA
zimkon, выяснил, что на деле всё работает идеально! Почему циклится в отладчике - я не понял)
+ добавил отключение режима Макет:
Код: vbnet
1.
2.
3.
 If InStr(1, UCase(cbar.Controls.Item(i).Caption), "МАКЕТ") > 0 Then
      cbar.Controls.Item(i).Enabled = False
End If
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Скрыть режим конструктора и области навигации в Access с помощью VBA / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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