VBA в MS Access

программирование базы данных microsoft VBA access

Ситуация следующая: по таблице создана форма, которая представляется в виде сводной диаграммы (гистограмма).
Ось Х - названия веществ, ось Y - их количество.
Как сделать чтобы при превышении заданного значения название вещества в легенде выделялось красным.
Причем проверка превышения не для всех веществ а для двух-трёх
Ответы:
сорри за офф, но на сколько я знаю в аксесе нету VBA, там другой язык какой-то для макросов
с аксессом не работал на уровне макросов. Макрорекордера там нет. Но если перевести в эксель проблему, то можно с помощью макрорекордера (запись, изменить цвет нужной строки в легенде, стоп) выяснить какие команды используются для изменение цвета. (можно поискать то же самое в MSDN)
Затем создать триггер или процедуру запускаемую по таймеру, которая будет анализировать значение и если оно превышено выполнять команды по изменению цвета.
Вероятнее всего, Вам нужно смотреть в сторону OLE объектов и доступа к ним через, например, свойства Class, SourceItem  и т.д.
Ведь Ваша диаграмма - внедренный объект...
В access, как и во всех продуктах офиса есть VBA, который участвует в качетве обработчика событий форм, таких как нажатие кнопки и т.п. Макросы там тоже есть но с их помощью данную задачу не решить. Требуется узнать какая запись таблицы отображена на диаграмме в данный момент, потом нужно прочитать из таблицы конкретную ячейку этой записи, сравнить с заданным значением и в зависимости от результата сменить цвет надписи на форме. И все это на VBA. Вот только как это сделать?
VBA - не только участвует в обработке событий :) Это достаточно серьезный язык, который может решать огромное количество задач...
Используйте встроенный VBA. Создавайте гистограмму программно, это не сложно, если посмотреть пару примеров в инете..
OLE-объекты инициализируются и управляются с помощью VBA не сложнее, чем любые другие.
Начните делать, не бойтесь, тогда и появятся вопросы, а это не вопрос, а так.. завтравка.. Невозможно на него ответить, так как непонятна именно конкретика задачи. В вашем случае, возможно, придется добавить в таблицу дополнительную колонку с признаком превышения и использовать условное форматирование.
Посмотрите, например, самые последние уроки по ссылке [1].
Всем спасибо за попытки помочь, но я нашел решение сам. Все ответы были неверными, а некоторые откровенно бредовыми.
Для тех у кого возникнут подобные проблемы, привожу кусок кода который я вставил в код формы:
Private Sub Form_Load()
If Form.CurrentView = 4 Then        'если вид формы - диаграмма, то
Dim cax As Integer
Form.Caption = ФИО_пациента.Value        'смена заголовка (не относится к теме вопроса)
If Сахар3.Value > 140 Then ChartSpace.ChartSpaceLegend.LegendEntries(5).Font.Color = RGB(255, 0, 0)
       'если содержание сахара выше нормы, то цвет пятого элемента легенды (надпись сахар) выделяется красным
If Гемоглобин.Value > 140 Then ChartSpace.ChartSpaceLegend.LegendEntries(2).Font.Color = RGB(255, 0, 0)        'по аналогии
If Гемоглобин.Value < 120 Then ChartSpace.ChartSpaceLegend.LegendEntries(2).Font.Color = RGB(0, 0, 255)        'по аналогии
Else
Form.Caption = ""        'если же вид формы не диаграмма, то заголовок пустой (тоже не относится к вопросу)
End If
End Sub
Я решил все свои проблемы, но если кто то сможет дать полезные советы по организации процесса, или дельные комментарии для людей с похожей проблемой, то этот человек получит бонусные 100 баллов.


16 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.