Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.66/197: Рейтинг темы: голосов - 197, средняя оценка - 4.66
0 / 0 / 0
Регистрация: 26.05.2014
Сообщений: 4
1

Как скрыть окно Access, чтобы показывались только формы

15.08.2014, 06:47. Показов 38597. Ответов 28
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток.
Помогите пожалуйста с такой проблемкой, как скрыть окно Access чтобы показывались только формы (они всплывающие).
Вторые сутки штурмую интернет, но ничего действенного не нахожу.

Access 2013
64 бита
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.08.2014, 06:47
Ответы с готовыми решениями:

Как скрыть окно Access, чтобы показывались только формы
Здравия желаю! Прошу помощи! Не могу разобраться по примеру "Убрать лишнее", т.е. чтобы запускалась...

Автозапуск формы: как скрыть окно Access?
Здравия желаю! Как реализовать, чтобы при запуске файла базы Access - выводилась на экране...

Есть ли в Access возможность скрыть основное окно программы при запуске, и оставить только всплывающие окна?
Всем, привет. Подскажите, имеется ли в Access возможность скрыть основное окно программы при...

Как скрыть окно Access?
Добрый время суток помогите решить следующую задачу Пример найден здесь же на форуме необходимо...

28
4064 / 1445 / 399
Регистрация: 07.08.2013
Сообщений: 3,617
15.08.2014, 09:28 2
ну совсем скрыть присутствие акса можно и мне попадался код по такому действу - кажется на hiprog автор lucas
хотя я противник полного скрытия акса
а убрать все формы запросы и прочее - заставить пользователя работать только через предлагаемые формы
то это в настройках базы данных
файл - параметры-текущая база данных
и тут 2 варианта либо в настройках указать форму которая будет открываться при запуске базы данных
либо создать макрос с именем autoexec в котором указать на запуск программы (имя функции) в которой указать необходимые при запуске базы данных действия
попасть в базу данных для корректировки запросов таблиц можно будет если во время запуска файла БД удерживать клавишу Shift
0
12 / 12 / 1
Регистрация: 06.11.2013
Сообщений: 113
15.08.2014, 09:41 3
А ещё и F11 открывает область навигации (с таблицами, запросами и т.д.)
0
0 / 0 / 0
Регистрация: 26.05.2014
Сообщений: 4
15.08.2014, 09:45  [ТС] 4
По интернету рылся и находил создание модуля, но там не работает функционал на 64 битной машине, ругается.
Вот такой код нашел:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Option Compare Database
Option Explicit
 
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hwndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, _
ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
'-------------------------------------------------------------------------------------------Declare Function FindFirstFile Lib "kernel32.dll" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Declare Function DeleteFile Lib "kernel32.dll" Alias "DeleteFileA" (ByVal lpFileName As String) As Long
Declare Function FindFirstFile Lib "kernel32.dll" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Type WIN32_FIND_DATA
  dwFileAttributes As Long
  nFileSizeHigh As Long
  nFileSizeLow As Long
  dwReserved0 As Long
  dwReserved1 As Long
  cFileName As String * 260
  cAlternate As String * 14
End Type
 
Public Function hidde_on()
Dim HWND_TOPMOST, SWP_SHOWWINDOW
SetWindowPos Application.hWndAccessApp, HWND_TOPMOST, -30, -30, 0, 0, SWP_SHOWWINDOW
End Function
Но проблема в том что он для 32 битной машины, и видать работал в 2007 версии.
Как его подправить на 2013 Access и 64 битную не догоняю.

Макрос Autoexec создал, назначил открытие формы.

По поводу того что скрыть все меню и объекты, это да, можно, но за формой остается окно Accessa, и не красиво смотрится, в рабочих формах информации мало, и никакие копирование, вставка и т.д. там не предусмотрены, только нажатие на элемент "флажок" да кнопки. А то что пользователи смогут по шифту посмотреть, так это по барабану, пусть открывают.
0
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
15.08.2014, 14:15 5
Цитата Сообщение от Alejo369 Посмотреть сообщение
По интернету рылся и находил создание модуля, но там не работает функционал на 64 битной машине, ругается
Попробуйте
Visual Basic
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
34
35
36
#If VBA7 Then
    #If Win64 Then
        Private Declare PtrSafe Function SetWindowLongPtr Lib "user32" Alias "SetWindowLongPtrA" (ByVal hwnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As LongPtr) As LongPtr
        Private Declare PtrSafe Function GetWindowLongPtr Lib "user32" Alias "GetWindowLongPtrA" (ByVal hwnd As LongPtr, ByVal nIndex As Long) As LongPtr
    #Else
        Private Declare PtrSafe Function SetWindowLongPtr Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As LongPtr) As LongPtr
       
    #End If
    Private Declare PtrSafe Function SetWindowPos Lib "user32" (ByVal hwnd As LongPtr, ByVal hWndInsertAfter As LongPtr, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
    
#Else
 
    
   Private Declare Function SetWindowPos Lib "User32" (ByVal hwnd As Long, ByVal hwndInsertAfter As Long, ByVal x As Long, ByVal Y As Long, _
ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
 
Private Declare Function apiShowWindow Lib "User32" _
    Alias "ShowWindow" (ByVal hwnd As Long, _
          ByVal nCmdShow As Long) As Long
          
          
          Declare Sub MessageBeep Lib "User32" (ByVal N As Long)
#End If
          
Option Explicit
 
Public Function hidde_on()
Dim HWND_TOPMOST, SWP_SHOWWINDOW
SetWindowPos Application.hWndAccessApp, HWND_TOPMOST, -40, -40, 0, 0, SWP_SHOWWINDOW
End Function
Public Function hidde_off()
Dim HWND_TOPMOST, SWP_NOACTIVATE, SWP_SHOWWINDOW
SetWindowPos Application.hWndAccessApp, HWND_TOPMOST, 0, 0, 1200, 1200, SWP_SHOWWINDOW
' 0, 0, 1200, 1200, SWP_SHOWWINDOW ' С этими значениями можно поиграть
' зависит от размера экрана
End Function
Инфа отсюда
http://answers.microsoft.com/r... d385dcbb12
и отсюда
http://msdn.microsoft.com/ru-r... e.14).aspx

Добавлено через 6 минут
А также вариант скрытия окна БД вообще без АПИ - Работа базы с CD
2
8860 / 5908 / 585
Регистрация: 27.03.2013
Сообщений: 19,572
15.08.2014, 14:22 6
Цитата Сообщение от mobile Посмотреть сообщение
...Попробуйте...
Ни фига себе маленький кодик
0
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
15.08.2014, 14:50 7
Цитата Сообщение от kmv-puh Посмотреть сообщение
Ни фига себе маленький кодик
Большую часть кода занимает "условная компиляция", т.е. варианты компиляции при различных системных константах.
#If VBA7 Then это проверка на версию ВБА. VBA7 для офисов, начиная с 2007. #If Win64 Then - проверка на разрядность офиса.
Решетка перед командами обозначает, что это код условной компиляции. Условная компиляция записывается в теле модуля вне текста процедур
2
8860 / 5908 / 585
Регистрация: 27.03.2013
Сообщений: 19,572
15.08.2014, 15:00 8
Цитата Сообщение от mobile Посмотреть сообщение
...Большую часть кода занимает "условная компиляция", т.е. варианты компиляции при различных системных константах...
Если честно, то даже ни одного слова не понял. кроме сллова - большую
По простонарордному можно для тугодумов типа меня как то объяснить???
0
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
15.08.2014, 15:39 9
Код ВБА не исполняется так как он написан. Сначала, перед выполнением, код компилируется, т.е. переводится в последовательность машинных команд. Но иногда, например, в зависимости от версии Windows или Office, приходится указывать, какую библиотеку использовать, или какой ее атрибут применять. Вот для этих целей и существует условная компиляция. Перед компиляцией кода ВБА, анализируется код условной компиляции и делаются какие-то действия в зависимости от ее исхода. Тогда сам код ВБА уже компилируется правильно, с учетом среды выполнения.
0
1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
15.08.2014, 16:41 10
Цитата Сообщение от Alejo369 Посмотреть сообщение
как скрыть окно Access чтобы показывались только формы
Visual Basic
1
2
3
4
5
6
7
CurrentDb.Properties("AllowSpecialKeys") = True ‘разрешить  F11, срабатывает после перезапуска
‘ показать окно базы срабытывает сразу
DoCmd.SelectObject acForm, , True
‘ Скрыть  окно базы срабытывает сразу
DoCmd.SelectObject acForm, , True
DoCmd.RunCommand acCmdWindowHide
CurrentDb.Properties("AllowSpecialKeys") = false  ‘запретить  F11, срабатывает после перезапуска
1
8860 / 5908 / 585
Регистрация: 27.03.2013
Сообщений: 19,572
15.08.2014, 16:58 11
boby104 - спасибо за пример. но он ЧЁЙТА не получился
0
1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
15.08.2014, 17:09 12
kmv-puh,
как могло не получится, в коде выбирете то что нужно:
или показать или скрыть окно базы
или отменить быстрые клавиши или включить

я на кнопку повесил код
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub cmdShowWindow_Click()
On Error GoTo Err_cmdShowWindow_Click
If MsgBox("Показать?", vbOKCancel, "Окно базы") = vbOK Then ' повесил код на кнопку если нажимаю да - то показыватеся окно
CurrentDb.Properties("AllowSpecialKeys") = True ' разрешаю быстрые клавиши
ChangeProperty "AllowBypassKey", dbBoolean, True ' разрешаю клавишу шифт при входе (нужна функция  ChangeProperty)
DoCmd.SelectObject acForm, , True ' показываю окно базы
Else
CurrentDb.Properties("AllowSpecialKeys") = False ' запрешаю быстрые клавиши
ChangeProperty "AllowBypassKey", dbBoolean, False ' запрещаю клавишу шифт при входе (нужна функция  ChangeProperty)
DoCmd.SelectObject acForm, , True ' выбок окна базы
DoCmd.RunCommand acCmdWindowHide ' скрываю окно базы
End If
 
Exit_cmdShowWindow_Click:
    Exit Sub
 
Err_cmdShowWindow_Click:
    MsgBox Err.Description
    Resume Exit_cmdShowWindow_Click
    
End Sub
Добавлено через 1 минуту
а это функция
Visual Basic
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
Public Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer
    Dim dbs As Object, prp As Variant
    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    ' Property not found.
 
        Set prp = dbs.CreateProperty(strPropName, _
            varPropType, varPropValue)
        dbs.Properties.Append prp
        Resume Next
    Else
        ' Unknown error.
 
        ChangeProperty = False
        Resume Change_Bye
    End If
End Function
1
0 / 0 / 0
Регистрация: 26.05.2014
Сообщений: 4
18.08.2014, 13:01  [ТС] 13
Всем спасибо, но эти коды не работают нормально.
База многопользовательская и возникают ошибки на разных компах.
Тему закрываю, так как понимаю что единообразия на всех компьютерах добиться не смогу.
0
3 / 3 / 1
Регистрация: 11.12.2015
Сообщений: 29
29.12.2015, 20:32 14
А решение вообще на Access существует? А то базу дернуть три секунды. Может кто решил отключение шифта на 2013 версии?
0
Эксперт MS Access
7397 / 4534 / 295
Регистрация: 12.08.2011
Сообщений: 14,021
30.12.2015, 09:09 15
Цитата Сообщение от 759 Посмотреть сообщение
Может кто решил отключение шифта на 2013 версии?
Мне думается, что мало кто на нём будет работать, соответственно и проблемы решать некому.
0
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
30.12.2015, 11:05 16
Цитата Сообщение от Alejo369 Посмотреть сообщение
База многопользовательская и возникают ошибки на разных компах.
Я так понимаю, если у вас многопользовательская база и возникают ошибки - скорее всего, она не разделенная? То есть одним файлом? Если разделить базу на файл с данными и рабочую базу, то по идее не должно быть никаких ошибок, поскольку каждая отдельная рабочая база будет себе спокойно компилировать условия в том коде, который дал mobile, и это никак не будет влиять на работу других пользователей.
Так что, мне кажется, зря вы торопитесь "закрывать тему", вопрос вполне себе решаемый, и код, который дал выше mobile (с использованием условной компиляции) - самый лучший вариант для вас.
2
96 / 92 / 16
Регистрация: 13.04.2015
Сообщений: 545
28.01.2016, 17:03 17
mobile, код хороший может, но стоит два раза щелкнуть по значку акса на панели и окно открывается(((
неужели никак нельзя скрыть окно? зачем такая прога (акс) нужна тогда, если базу даже не защитить?
Извиняюсь конечно, может я во что не врублюсь
0
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
28.01.2016, 17:12 18
Цитата Сообщение от Aleks777 Посмотреть сообщение
...скрыть окно? зачем такая прога (акс) нужна тогда, если базу даже не защитить?
Почему такой вопрос возникает только у пользователей Access, но никогда у юзеров Excel или Word? Почему в екселе/ворде не требуется скрывать окно приложения, а в аксе такое желание возникает? И ведь это никак не соотносится с защитой данных (вернее почти никак) потому что для защиты применяются другие методы. Которые тоже кстати, не абсолютны, потому что ничего абсолютного кроме сферического коня в вакууме не бывает.

Aleks777, поищите по форуму на защита данных. Много чего найдете. И скрытие интерфейса Access там явно не на первом плане.
2
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
28.01.2016, 17:16 19
Цитата Сообщение от mobile Посмотреть сообщение
ничего абсолютного кроме сферического коня в вакууме не бывает
Это пять)
0
96 / 92 / 16
Регистрация: 13.04.2015
Сообщений: 545
28.01.2016, 17:20 20
Цитата Сообщение от mobile Посмотреть сообщение
Почему такой вопрос возникает только у пользователей Access
потому что в аксе должны одновременно все работать и никто ничего не менять (формы и т.п.)
1
28.01.2016, 17:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.01.2016, 17:20
Помогаю со студенческими работами здесь

Как сделать, чтобы радианы показывались с числом ПИ?
Как сделать, чтобы вместо 1.571 показывало ПИ/2

Как убить или скрыть окно OpenGL, чтобы работать в консоли
Пишу Консольную СУБД, OpenGL используется в качестве заставки-справки необходимо скрыть или убить...

Можно ли как-то скрыть окно из Диспетчера задач (в приложении, где много окон, чтобы глаза не мозолили)?
Здравствуйте! Есть приложение, состоящее из нескольких окон. Так вот можно ли сделать так, чтобы в...

Скрыть окно выполняющейся по расписанию программы, чтобы не мешало работать
всем дорого времени суток... опишу ситуацию полностью. Есть у меня xStarter (запущен от Local...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru