Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 60

Добавление готового модуля

15.02.2017, 18:46. Показов 4686. Ответов 62
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. У меня был назначен макрос для кнопки. Я преобразовал его в модуль VBA. Как назначить этот готовый модуль для кнопки.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.02.2017, 18:46
Ответы с готовыми решениями:

[C++ Builder XE7] Добавление анимации на форму из готового .avi файла
Здравствуйте! Имеется тема курсовой на игровую тематику. Среда разработки C++ Builder XE7 В игре есть персонаж, состояние персонажа будет...

Добавление модуля
Windows 7 x64 Есть ли в кьюте установщик модулей? Или где в настройках кьюте можно указать путь к моему модулю? Как вообще...

Добавление модуля
Доброго времени суток! Очень нуждаюсь в Вашей помощи. Есть готовая рабочая програма. Всё что нужно, это сделать, что бы использованые в...

62
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
15.02.2017, 20:04
Цитата Сообщение от Capricorn Посмотреть сообщение
У меня был назначен макрос для кнопки. Я преобразовал его в модуль VBA. Как назначить этот готовый модуль для кнопки.
В общем случае скопировать содержимое процедуры в код процедуры того события на которое ранее был назначен макрос. Копировать без первой и последней строки, т.е. объявление Sub ... и End Sub не копировать. В свойствах формы вместо имени макроса выбрать "Процедура обработки события", нажать в этой же строке кнопку с 3 точками и попадете в модуль, где уже будет определение процедуры. Вот внутрь ее скопировать код преобразованного макроса.

Но это общий рецепт. Могут быть частности и возникнуть ошибки разного рода. Например из-за неполного объявления имен.
3
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 60
15.02.2017, 22:09  [ТС]
Цитата Сообщение от mobile Посмотреть сообщение
В общем случае скопировать содержимое процедуры в код процедуры того события на которое ранее был назначен макрос. Копировать без первой и последней строки, т.е. объявление Sub ... и End Sub не копировать. В свойствах формы вместо имени макроса выбрать "Процедура обработки события", нажать в этой же строке кнопку с 3 точками и попадете в модуль, где уже будет определение процедуры. Вот внутрь ее скопировать код преобразованного макроса.

Но это общий рецепт. Могут быть частности и возникнуть ошибки разного рода. Например из-за неполного объявления имен.
В кнопке начало privat sub а в переделаном макросе function. Как не пробовал вставлять и переделывать всё равно ошибки.
0
Эксперт MS Access
 Аватар для Eugene-LS
13173 / 5872 / 1504
Регистрация: 05.10.2016
Сообщений: 16,491
15.02.2017, 22:18
Цитата Сообщение от mobile Посмотреть сообщение
Могут быть частности и возникнуть ошибки разного рода. Например из-за неполного объявления имен.
Обычно, код под кнопкой выглядит так:
Visual Basic
1
2
3
4
5
6
7
Private Sub cmdTest2_Click()
Dim v As Variant, lNewNo As Long
 
    v = DMax("itmID", Me.RecordSource)
    lNewNo = Nz(v) + 1 'Получаем Номер + 1 от максимального
    Debug.Print lNewNo 'Отображение результата в Immediate Window (Ctrl+G)
End Sub
Где!
Private Sub cmdTest2_Click = Обьявление процедуры = Реакция на событие нажатие на кнопку с названием "cmdTest2"
Dim v As Variant, lNewNo As Long = Обьява используемых перемменных
End Sub = Конец обработки процедуры нажатияю

Добавлено через 4 минуты
Хорошо, надёжней и полезно использовать метку обработчика ошибок
Тогда, - то же самое - будет таким:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub cmdTest2_Click()
Dim v As Variant, lNewNo As Long
'--------------------------------------------------------------------------
On Error GoTo cmdTest2_Click_Err
    v = DMax("itmID", Me.RecordSource)
    lNewNo = Nz(v) + 1 'Получаем Номер + 1 от максимального
    Debug.Print lNewNo 'Отображение результата в Immediate Window (Ctrl+G)
 
cmdTest2_Click_Bye:
    Exit Sub
 
cmdTest2_Click_Err:
    MsgBox "Ошибка " & Err.Number & vbCrLf & Err.Description & vbCrLf & "в процедуре: cmdTest2_Click", vbCritical, "Error in module Form_frmTest"
    Resume cmdTest2_Click_Bye
End Sub
Добавлено через 2 минуты
Тут мы , как бы говорим:
- При возникновении ошибки извести меня о ней сообщением, а если ошибок нет - просто молча уйди на завершение.
1
369 / 88 / 8
Регистрация: 14.08.2012
Сообщений: 248
15.02.2017, 22:25
Цитата Сообщение от Capricorn Посмотреть сообщение
В кнопке начало privat sub а в переделаном макросе function. Как не пробовал вставлять и переделывать всё равно ошибки.
Ты чувак или мазохизмом балуешься или тайный фанат Кашпировского. Тот тоже любитель по ящику лечить.

Покажи наконец свой нетленный макрос. Переведенный в код. И скажи че те надо. Здесь народ понятливый переведут с кухонного на вбашный сленг.
1
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 60
15.02.2017, 22:48  [ТС]
Цитата Сообщение от odbcsql Посмотреть сообщение
Покажи наконец свой нетленный макрос. Переведенный в код. И скажи че те надо. Здесь народ понятливый переведут с кухонного на вбашный сленг.
Вот это. Я попробовал разместить функцию сверху. А внизу уже команды саб для кнопки и только фильтр. Но он все равно не фильтрует как надо. Просто одно и то же непонятно по какой системе.
Миниатюры
Добавление готового модуля  
0
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 60
15.02.2017, 22:50  [ТС]
Вот как я попробовал сделать.
Миниатюры
Добавление готового модуля  
0
Эксперт MS Access
 Аватар для Eugene-LS
13173 / 5872 / 1504
Регистрация: 05.10.2016
Сообщений: 16,491
15.02.2017, 22:55
Цитата Сообщение от Capricorn Посмотреть сообщение
Я попробовал разместить функцию сверху
Объявления функции не видно.
1
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 60
15.02.2017, 22:58  [ТС]
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Объявления функции не видно.
Верхнее фото это макрос переведенный в код. Нижнее то что я пытался сделать. Там тот же макрос что и на верхнем фото, только команду задать фильтр я перенес вниз.
0
Эксперт MS Access
 Аватар для Eugene-LS
13173 / 5872 / 1504
Регистрация: 05.10.2016
Сообщений: 16,491
15.02.2017, 23:08
Цитата Сообщение от Capricorn Посмотреть сообщение
Верхнее фото это макрос переведенный в код. Нижнее то что я пытался сделать
Обявления в обоих случаях не видно.

Но лучше пример, и так будет нагляднее.
Экспортируйте форму и необходимые данные (Таблицы и запросы) в отдельный файл MSA и разархивируйте его.
Выложите файл тут с пояснениями того что вы хотели, и что не получается.
1
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 60
15.02.2017, 23:19  [ТС]
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Выложите файл тут с пояснениями того что вы хотели, и что не получается.
Я скину лучше всю базу чтоб понятнее было. Значения в ней пока от балды. Поля со списком будут сортировать оборудование. Это я знаю как сделать. А надо еще чтобы при введеном интервале дат показались записи где есть хоть один вид ТО. Наладка Н, восстановление В и т.д.
Вложения
Тип файла: rar БД.rar (144.1 Кб, 7 просмотров)
0
Эксперт MS Access
 Аватар для Eugene-LS
13173 / 5872 / 1504
Регистрация: 05.10.2016
Сообщений: 16,491
15.02.2017, 23:25
Цитата Сообщение от Capricorn Посмотреть сообщение
Я скину лучше всю базу чтоб понятнее было. Значения в ней пока от балды. Поля со списком будут сортировать оборудование
А где пояснения (во всех подробностях) про то ЧТО и ГДЕ не получается?
Ну не знаю... работы навалом + мой телепатационный модуль вторую неделю в ремонте...
1
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 60
15.02.2017, 23:31  [ТС]
Цитата Сообщение от Eugene-LS Посмотреть сообщение
А где пояснения (во всех подробностях) про то ЧТО и ГДЕ не получается?
Я сперва прописал макрос для кнопки который независимо фильтрует данные. То есть что надо выбрать и нажать кнопку. Проблема была с датами. Я сперва сделал так что если есть интервал то запись выйдет если только абсолютно все даты в ней попадут в этот интервал. Потом через или пробовал но не получалось. Затем здесь мне показали как это исправить. Но появилась другая проблема. Места в окне "условия фильтра" не хватает чтобы ввести все формулы что надо. И я решил перевести все в VBA. Но раньше на действие кнопки был задан макрос. А теперь я его перевел и не знаю как назначить толком для этой кнопки.
0
Эксперт MS Access
 Аватар для Eugene-LS
13173 / 5872 / 1504
Регистрация: 05.10.2016
Сообщений: 16,491
15.02.2017, 23:36
Цитата Сообщение от Capricorn Посмотреть сообщение
Я сперва прописал макрос для кнопки который независимо фильтрует данные
Ладно ... гляну - но подробностей маловато.

Обычно пишут так :
Форма: [Название] - кнопка или событие формы ... Нужно то-то и то-то
1
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 60
15.02.2017, 23:38  [ТС]
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Форма: [Название] - кнопка или событие формы ... Нужно то-то и то-то
Там форма одна. И кнопка применить и отменить. Для кнопки применить. Запрос там ни к чему.
0
Эксперт MS Access
 Аватар для Eugene-LS
13173 / 5872 / 1504
Регистрация: 05.10.2016
Сообщений: 16,491
15.02.2017, 23:41
Там у вас форма "Оборудование" - так что там фильтр не пашет?
(а я вижу что не пашет)
Так это простейшее - море примеров (и тут в т.ч.)
Единственное с чем могут быть траблы - диапазон по датам - так про то писано - Переписано миллионы статей - осталось их найти.

Добавлено через 42 секунды
Мне подправить - или сами справитесь?
1
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 60
15.02.2017, 23:43  [ТС]
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Единственное с чем могут быть траблы - диапазон по датам
С этим и есть вся проблема

Добавлено через 1 минуту
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Мне подправить - или сами справитесь?
Я нашел как это сделать через макросы, но в строке условия отбора у фильтра места не хватило. Потом я перевел в VBA, а как для кнопки его назначить не знаю.
0
Эксперт MS Access
 Аватар для Eugene-LS
13173 / 5872 / 1504
Регистрация: 05.10.2016
Сообщений: 16,491
16.02.2017, 00:03
Цитата Сообщение от Capricorn Посмотреть сообщение
Я нашел как это сделать через макросы, но в строке условия отбора у фильтра места не хватило. Потом я перевел в VBA, а как для кнопки его назначить не знаю.
А кнопок и не нужно!
На каждое поле , участвующие в фильтрации "вешаем" нечто вроде:
Visual Basic
1
2
3
Private Sub ФильтрПодразделение_AfterUpdate()
    DoSubFormFilter
End Sub
И дальше пишем местную процедуру DoSubFormFilter() обрабатывающую все значения полей фильтрации и строящию и применяющую фильтр.

Да не просто ( с учётом кол-ва полей) - но давно описано на море источников.
Осталось их найти и прочитать.

Добавлено через 4 минуты
Простейшее:
Фильтрация подчиненной формы (По текстовому полю с оператором Like)

Добавлено через 3 минуты
Обычно, в таких случаях, рядом принято рисовать кнопку "Очистить фильтр!"
Которая:
01 - Очищает значения всех фильтрующих полей (=Null)
02 - Отменяет и очищает фильтр подчинёнки.
1
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 60
16.02.2017, 00:09  [ТС]
Цитата Сообщение от Eugene-LS Посмотреть сообщение
А кнопок и не нужно!
Так то оно конечно лучше, только разбираться я в этом слишком долго буду скорее всего. Но спасибо конечно за советы.
0
Эксперт MS Access
 Аватар для Eugene-LS
13173 / 5872 / 1504
Регистрация: 05.10.2016
Сообщений: 16,491
16.02.2017, 00:15
Цитата Сообщение от Capricorn Посмотреть сообщение
только разбираться я в этом слишком долго буду скорее всего. Но спасибо конечно за советы.
Б...
Щас нарисую пример - минуток за 17 ....
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.02.2017, 00:15
Помогаю со студенческими работами здесь

Добавление модуля в asterisk
Добрый день. Сервер с centos 6 на нем развернут asterisk 1.8 + freepbx 2.11. Возникла необходимость мониторить астер с помощью snmp. Как...

Добавление позиции модуля
Здравствуйте! Тема тривиальная, но всё же прошу уделить внимания. 1. В файле templateDetails.xml прописано...

Добавление модуля apache
Добрый день, добавила модуль svm чарез pecl, скопировала модуль к модулям апача, добавили ini-файл в директорию. В phpinfo показывается...

Добавление модуля в ASF проект.
Здравствуйте,мне нужно добавить модуль XMEGA Quadrature Decoder dryvers в готовый проект. В описании работы с ASF сказано: После...

Добавление модуля UML в NetBeans 6.5
Не видит этот модуль. Я скопировал папку uml6 в папку с программой. Далее перезапускаю netbeans, создаю новый проект, но в Categories нет...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru