Выбор цвета с использованием системной службы и просмотр выбранных цветов в ленточной форме
Недавно я столкнулся с интересной задачей. Заказчик хотел выгружать в Excel план/табель работы сотрудников раскрашенный в зависимости от того, чем они были заняты в данный день: работа в офисе, выезд на объект, командировка, отпуск, отгул, больничный и т.п. Причем заказчик сам желал задавать цвета и надо было предусмотреть возможность добавления новых значений. Заказчик хотел, чтобы для задания цветов использовалась ленточная форма. Для наглядности. Здесь возникли 2 задачи. 1. Вызов системной службы задания цветов. (Зачем писать свою, если есть уже разработанная?) 2. Вывод выбранных цветов в ленточной форме.(в одиночной форме раскрасить какой-либо элемент выбранным цветом проблем не составляет, но вот в ленточной... Красятся все объекты во всех записях. Необходимо, чтобы этот элемент входил в рекордсет.)
По первому вопросу мне помог коллега ROI с сайта SQL.RU
Private Declare Function wlib_AccChooseColor Lib "msaccess.exe" Alias "#53" _ (ByVal hwnd As Long, rgb As Long) As Long Public Function roi_ChooseColor(Optional vInitRGB As Long) As Long Dim i As Long On Error GoTo HandleError i = vInitRGB Call wlib_AccChooseColor(0, i) roi_ChooseColor = i ExitProc: Exit Function HandleError: MsgBox vbCrLf & Err.Description & _ vbCrLf & vbCrLf & " Имя процедуры = roi_ChooseColor", _
vbCritical, "Ошибка " & Err.Number
Resume ExitProc End Function
А для второй задачи я воспользовался примером Бенедикта (JPGInContForm1x12K) с того же сайта.
И вот что получилось в результате.
P.S. Пример работает в 32-х разрядной версии. Для 64-х я его не адаптировал. Пример в формате Access 2000 Пример Бенедикта Просмотров: 1359
Ваш коментарий будет первым | | |