Отправляет email-рассылки с помощью сервиса Sendsay

Работа с MS Access

  Все выпуски  

Работа с MS Access : (021)


Служба Рассылок Subscribe.Ru проекта Citycat.Ru

Работа с MS Access

Ведущий рассылки Виктор Познев; Сайт проекта: http://msa.km.ru
 

Выпуск 021

СЕГОДНЯ В НОМЕРЕ

  1. Новости раздела "FORUM+"
  2. АPI для замера быстродействия процедуры
  3. Динамические меню - затягиваем гайки
  4. Новости MSA.KM.RU
  5. Новые темы форума.

 

Новости раздела "FORUM+"

 

6 июля 2001 г.
В рубрике Table,SQL,Query обновление. Добавлено: Определить текущую запись в таблице.
Краткая аннотация: Да, именно не в форме а в таблице...


6 июля 2001 г.
В рубрике Table,SQL,Query обновление. Добавлено: Запросы с переменными.
Краткая аннотация: Как их применять...


6 июля 2001 г.
В рубрике Forms обновление. Добавлено: Корректная обработка ошибок.
Краткая аннотация: Работа над ошибками - это искусство, об этом постоянно пишут Литвин, Гетц, Гилберт... и Silich =o)


6 июля 2001 г.
В рубрике Forms обновление. Добавлено: Передача значений из формы в форму .
Краткая аннотация: Как можно передать дату через универсальную форму?


6 июля 2001 г.
В рубрике Forms обновление. Добавлено: Красивое представление количества записе.
Краткая аннотация: Как представить количество записей в форме красиво, без нижнего навигатора записей? Разговор получился интересный :)


30 июня 2001 г.
В рубрике Report обновление. Добавлено: Подсчет записей.
Краткая аннотация: Задача не трудная... А если надо подсчитать соотношение записей с нулевым значением к общему количеству? Решение и немного SQL


30 июня 2001 г.
В рубрике Files обновление. Добавлено: Открыть файл.
Краткая аннотация: Часто используемая функция... Но не для новичков, не знающих об API :))


30 июня 2001 г.
В рубрике Forms обновление. Добавлено: Вкладки.
Краткая аннотация: Хороший диалог с форума с объяснением таб-контрола и как с ним работать...


30 июня 2001 г.
В рубрике Общие обновление. Добавлено: Исчез перечень дополнительных контролов?.
Краткая аннотация: Пропал перечень дополнительных контролов или какие файлы за что отвечают в MSA


30 июня 2001 г.
В рубрике Общие обновление. Добавлено: Обработка ошибок в VBA.
Краткая аннотация: Когда в зависимости от номера ошибки вы выбираете действие - код ошибки надо очистить...


 

 

АPI для замера быстродействия процедуры

К. Гетц, М. Гилберт
 

Ответил: ДиД shilkin@pochtamt.ru

От: ДиД 30.05.2001 16:57:05
Re:API, которой можно засечь время (миллисек)

private declare function timeGetTime lib "winmm.dll" () as long
start=timeGetTime()....

Это нашел во 2 томе.
Вообще-то все подробно написано в 1-ом. И там, если мне не изменяет память, другая
библиотека. Не помню. Завтра только смогу посмотреть. Под рукой нет. У кого есть Пол Литвин, Кен Гетц, Майк Гилберт "Access2000" поищите.

Полный ответ:

Private Declare Function timeGetTime Lib "winmm.dll" () As Long
'---------------------------------------------------------------
Sub fncTest()
Dim tmStart As Long

tmStart = timeGetTime()
'----------------
'Выполнение процедуры
'----------------
MsgBox "Время выполнения: " & (timeGetTime() - tmStart) & " msec." & vbCr & _
"или" & ((timeGetTime() - tmStart) / 1000) & " sec."
End Sub

 


 

Динамические меню - затягиваем гайки

Сакович Роман
 

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

Данный код, позволяет отключить системное меню MS Access:

Dim myMenuBar As CommandBar
Set myMenuBar = CommandBars("Menu Bar")
myMenuBar.Enabled = False ' соответственно = True, отобразит системное меню.



Следующая строка:

Application.SetOption "Can Customize Toolbars", False

запрещает пользователям настройку меню, созданного на основе панели инструментов. Пользователь при счелчке правой кнопкой мыши по меню, не обнаружит стандартного пункта Customize...

Строка:

Application.SetOption "Built-In Toolbars Available", False

погасит, и запретит появление всех встроенных контекстно зависимых панелей инструментов, таких как, например: "form design", "macro design", и т.д.

Для перехвата "горячих" клавиш необходимо создать макрос, например с именем AutoKeysUser:

В колонке Macro Name введите название клавиши, например {F11} - для блокировки системного Window (окна БД). В колонке Action выберите действие. Если просто нужно заблокировать нажатие клавиши, то выберите действие beep - сигнал. При нажатии пользователем на клавишу F11 прозвучит сигнал. Можно выбрать любое действие, например OpenForm и открывать форму с курсами валют. Задайте все клавиши, которые нужно заблокировать, введите действия и сохраните макрос. Одновременные нажатия клавиш вводятся так: ^{F11}- Ctrl и F11, +{F5}- Shift и F5. Что бы макрос вступил в действие, его надо запустить строкой: Application.SetOption "Key Assignment Macro", "AutoKeysUser". Таким образом можно не только блокировать некоторые клавиши, но и создавать свои "горячие клавиши".

Рекомендую создать функцию:

Function ClearSystem()
    Application.SetOption "Key Assignment Macro", "AutoKeysUser"
    Application.SetOption "Built-In Toolbars Available", False
    Application.SetOption "Can Customize Toolbars", False
End Function

и запускать ее в момент инициализации программы. В дополнение к этому можно запретить останавливать запуск autoexec нажатием Shift, это было описано на этом сайте.

Меню на основе панели инструментов, может открывать форму, отчет, запрос, макрос. Если надо запускать определенную функцию, то создайте макрос и перечислите там все такие функции с именами (Macro Name). При настройке меню, на такие функции можно ссылаться, выбрав All Macros и с права в окне Commands, выберите этот "макрос"."имя входа". 

Наверняка Вы заметили, что автор использует не русифицированный MS Access. Все выше сказанное отлично работает и на русской версии. Но наоборот - не всегда. Если Вы напишите на событии "On Click" - [Event Procedure] - это будет работать везде, но если [Процедура обработки событий] (или как там оно пишется не могу проверить) - на оригинальном MS Access выдаст сообщение об ошибке. Тоже касается и всего выше сказанного: "Can Customize Toolbars",... Можете заменять русскими аналогами, но если попадется пользователь с установленным English MS Access, Вы с удивлением обнаружите, что процентов 5 программы почему то не работает. Причем удивительна избирательность, некоторые русские свойства "переводятся" на английской версии (их большинство), а некоторые нет.

 

Новости MSA.KM.RU

  • Долгожданные изменения форума вступили в силу:
    -  форум не реагирует на html-теги;
    -  возможность выбора между полным списком и только корневыми сообщениями с подсветкой кол-ва вложенных сообщений в корне;
    -  возврат на нужную страницу по ссылке К списку сообщений.

 

Новые темы форума

- Глюк в 97-ом? или так было задусано? :)) (1)
- импорт базы Access в Oracle (1)
- Литературу посоветуйте, пожалуйста! (2)
- O pole "Memo" opyatt: Fedoru, Nicu, silichu..., (1)
- Kak prochestt datu posledney modificatsii faila? (2)
- Прошу помощи! (2)
- Под Win2000 не открылась база... (1)
- Nic: (когдато) А можно в А97 сжать базу не через SendKeys, а через какую-нить аксессную команду? (13)
- Fromon: Дошли руки, убил паразитные коммандабы в реестре. Спасибо. (0)
- COMCTL.TreeCtrl.1 (9)
- Как открыть БД без автозапуска макроса? (1)
- Access и Paradox (2)
- мысли вслух (0)
- Fromonу, Slishу и Maratу от Светланы (3)
- Выбрать определенную запись (одну) (4)
- ...

Разбор матча смотри в FORUM+.


Архив Рассылки

 
Рассылка 'Работа с MS Access'

При перепечатке или любом другом публичном использовании материалов ссылка обязательна.



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться Рейтингуется SpyLog

В избранное