Создание «пузыря уведомлений» в ms access

Я работаю над этим некоторое время и, кажется, не могу понять этого. У меня есть домашняя страница в Microsoft Access с многочисленными вложенными подчиненными формами. Одна из этих подчиненных форм - это недавний канал активности, аналогичный тому, что вы можете увидеть на большинстве платформ социальных сетей. Это вложенная вкладка с разделами «Недавние события» и «Примечания». Я пытаюсь отобразить «Пузырь уведомлений», когда элемент в этой подчиненной форме был добавлен за последние 24 часа, и ТОГДА исчезнуть, когда пользователь щелкнет соответствующую вкладку.

«Пузырь уведомлений» - это изображение, называемое «недавнее оповещение». В настоящее время пузырек появляется только при соблюдении 24-часового критерия, но я не могу заставить его исчезнуть после нажатия соответствующей вкладки. Я безуспешно перепробовал множество форматов и разные мероприятия. Мой код ниже. Пожалуйста помоги!

    Private Sub Recent_Click()
        If Me.recentalert.Visible = True Then
            Me.recentalert.Visible = False
        End If
    End Sub

    Private Sub Form_Load
        If [Forms]![Navigation Form]![NavigationSub]![Activity Feed]![RAevents_frm].[Form].[today_date] >= Date -1 Then
            Me.recentalert.visible = True
        End If
    End Sub
.visible может быть?
Nathan_Sav 31.10.2018 14:38

Поскольку у вас появился пузырек с Me.recentalert.visible = True, вы пробовали Me.recentalert.visible = False скрыть его?

Mathieu Guindon 31.10.2018 14:44

Мое событие OnClick выше должно сделать изображение невидимым, если visible = true, но по какой-то причине оно не работает.

Adam M 31.10.2018 15:40

Вы уверены, что ваш код Recent_Click() срабатывает? Вы можете добавить уведомление, например MsgBox "Firing", в подпрограмму, чтобы проверить это.

user3728595 31.10.2018 17:00

У вас не будет возможности обрабатывать .visible=false, когда он исчезнет. Попробуй просто Me.recentalert.Visible = not Me.recentalert.Visible

Nathan_Sav 31.10.2018 17:03

.visible = false не выгружает элемент управления, для этого не нужен специальный обработчик. Кроме того, этот код сделает изображение снова видимым после нажатия на вкладку, чего он не просит.

Jeffrey 31.10.2018 18:01

Натан, Джеффри прав, элемент управления = not.me просто переключает видимость. Как только я нажимаю кнопку, я хочу, чтобы изображение исчезло, если форма не будет перезагружена и новое событие не будет соответствовать 24-часовым критериям. @ user3728595, возможно, вы что-то заметили, после проверки того, сработало ли событие Recent_Click() с сообщением об ошибке, ничего не произошло. Есть идеи, почему мой OnClick не срабатывает?

Adam M 31.10.2018 18:19
0
7
192
1

Ответы 1

Попробуйте щелкнуть правой кнопкой мыши элемент управления, в котором должно запускаться событие On Click, и нажмите «Создать событие». Это должно привести вас к подпрограмме Recent_Click в вашем модуле, если нет, ваш элемент управления не связан должным образом, и я бы предложил удалить подпрограмму в вашем модуле, используя метод правой кнопки мыши выше, нажмите на Code Builder, а затем повторно введите свой код .

Мне очень жаль, что это была ошибка повторного ввода с моей стороны. Мой код - Recentalert.visible. Я также заметил, что случайно набрал фигурную скобку в приведенном выше коде. В моем коде это квадратная скобка.

Adam M 31.10.2018 15:37

На экране разработки формы на вкладке «Событие» элемента управления «Последние» убедитесь, что в событии «По щелчку» указано [Процедура события].

Jeffrey 31.10.2018 15:48

Находятся ли изображение и вкладка в одной и той же форме или один находится в подчиненной форме, а другой - в основной или другой подчиненной форме?

Jeffrey 31.10.2018 15:54

Событие On Click говорит [Процедура события]. «Лента действий» - это подчиненная форма с вкладками, встроенная на главную страницу «Формы навигации». Изображение «Recentalert» находится на вкладке «Недавние» подчиненной формы «Лента активности». На вкладке «Недавние» есть еще одна непрерывная подчиненная форма «RAevents_frm», в которой находится поле «today_date». Если в этом есть смысл.

Adam M 31.10.2018 16:19

Да, в этом есть смысл. Вы используете Option Explicit? Если нет, добавьте его в начало каждого модуля формы и запустите «Отладка»> «Скомпилировать». Я не понимаю, почему это не сработает, так что если у вас что-то неправильно написано, я в растерянности.

Jeffrey 31.10.2018 17:57

Я не был, однако, я просто добавил его и выполнил без ошибок. После того, что сказал пользователь выше, моя проблема в том, что событие OnClick по какой-то причине не срабатывает.

Adam M 31.10.2018 18:40

Я изменил свой ответ выше, посмотрите, поможет ли это.

Jeffrey 31.10.2018 18:55

Это то, что я сделал изначально, чтобы создать событие, которое заставляет меня поверить, что «Недавние» являются подходящим элементом управления. Я не знаю, есть ли что-то в доступе, где вкладка в форме с вкладками не может также использоваться кнопкой cmd, но я попробовал OnClick с другой кнопкой, но безуспешно.

Adam M 31.10.2018 19:22

Я не знаю, почему это не работает, я просто создал элемент управления вкладкой в ​​форме, вставил эту форму в другую форму, открыл основную форму и щелкнул вкладку, и он отлично выполнил код.

Jeffrey 01.11.2018 01:06

Я тоже не уверен. Я попробую несколько новых вещей и отправлю ответ, если разберусь. Спасибо за помощь.

Adam M 01.11.2018 19:54

Я думаю (на основе моих тестов в Access 2013), что элемент управления Recent относится к открываемой странице, а не к самой вкладке. Если вкладка, содержащая эту страницу, называется TabControl1, попробуйте поместить свой код в процедуру TabControl1_Change().

user3728595 02.11.2018 06:29

Я только что сам вычислил номера tabindex, так что считаю, что вы правы. Мне нужно сделать OnChange и указать tabindex = 0 вместо «Recent». Сейчас я имею дело с некоторыми проблемами с повреждением базы данных, поэтому я должен отложить это, но это должно быть многообещающим.

Adam M 03.11.2018 13:29

Другие вопросы по теме