Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
Заблокирован
1

Условное форматирование

10.12.2013, 21:44. Показов 3240. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер! Подскажите, каким образом можно реализовать перекрашивание полей в форме по условию если в дате разность 6 месяцев. То есть с помощью кода VBA было бы так:

Visual Basic
1
DateDiff("m", Date, Me.Ïîëå291.Value, vbMonday)
Получаем к примеру "6" месяцев между сегодня и датой в поле291. Как к примеру задать в "Условном форматировании", понять не могу.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2013, 21:44
Ответы с готовыми решениями:

Условное форматирование
Добрый день. Помогите пожалуйста решить такую проблему: Имеется форма с подчинённой формой в ней...

Условное форматирование
Здравствуйте, недавно начал изучать Access и возник такой нубский вопрос: можно ли в условном...

Условное форматирование
Здравствуйте уважаемые форумчане! Помогите решить проблему. Есть форма с данными, в каждой...

Условное форматирование
В зависимости от значения поля, меняется цвет, сделано через условное форматирование. Как выделить...

12
2842 / 774 / 41
Регистрация: 20.05.2012
Сообщений: 2,055
10.12.2013, 22:14 2
Вместо запятой - точка с запятой (и поля - в квадратные скобки, без Me и Value и 2 вместо vbMonday)

???

Добавлено через 8 минут
и без vbMonday

Добавлено через 1 минуту
Упс, апаздал... )
1
Заблокирован
11.12.2013, 10:21  [ТС] 3
Андрэич, Есть N количество полей и 1000 записей. Я не могу понять как в условном форматирование программе задать условие, что есть разность 6 месяцев, тогда закрасить поле. В VBA выглядело бы так:

Visual Basic
1
2
3
4
5
6
7
Set Rec = CurrentDb.OpenRecordset("Таблица")
    For i = 1 To Rec.RecordCount
        If DateDiff("m", Date, Me.Ïîëå291.Value, vbMonday) = 6 Then
            'Что-то делаем
        End If
        Rec.MoveNext
    Next i
Добавлено через 2 часа 43 минуты
Ни кто не подскажет ?
0
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
11.12.2013, 10:31 4
Попробуйте записать выражение в УФ
Visual Basic
1
DateDiff("m"; [Поле291]; Date()) >= 6
1
161 / 24 / 1
Регистрация: 02.09.2013
Сообщений: 104
11.12.2013, 10:42 5
Visual Basic
1
[fDate]>Date()-30 And [fDate]<Date()
в данном примере Условное форматирование работает с месяцем.

в вашем случае надо написать в Условное форматирование поля с датой:

Visual Basic
1
[fDate]>Date()-180 And [fDate]<Date()+180
fDate -имя вашего поля с датой
второе условие мне кажется странным, но у вас так задача постановлена.
Пример в вложении.
Вложения
Тип файла: rar db2.rar (16.1 Кб, 34 просмотров)
1
3356 / 1775 / 83
Регистрация: 05.08.2010
Сообщений: 4,471
11.12.2013, 10:57 6
А что за форма хоть? Табличная, одиночная, ленточная?

Добавлено через 8 минут
Добавлю, что еще необходимо условие с Year().
Иначе выдаст все записи с месяцем всех годов, не так ли?
2
Заблокирован
11.12.2013, 11:38  [ТС] 7
mobile, Ваш вариант именно то, что было нужно! Спасибо Вам огромное!

Добавлено через 14 минут
Можно дополнительный вопрос, а как добавить к условию:

Visual Basic
1
DateDiff("m"; [Поле291]; Date()) >= 6
Исключить слово из списка "Закупка", то есть оставить только продажа и условие. Исключив все с текстом "Закупка", в поле "Товар".

Добавлено через 2 минуты
То есть закрасить только поля которые содержат слово "Продажа", а пропустить слово "Закупка" в поле "Товар".
0
3356 / 1775 / 83
Регистрация: 05.08.2010
Сообщений: 4,471
11.12.2013, 11:40 8
AND InStr(1,Товар,"Продажа")>0
1
Заблокирован
11.12.2013, 11:46  [ТС] 9
Visual Basic
1
DateDiff("m"; [Поле291]; Date()) >= 6 AND InStr(1,Товар,"Продажа")>0
Ошибка синтаксиса.
0
3356 / 1775 / 83
Регистрация: 05.08.2010
Сообщений: 4,471
11.12.2013, 11:53 10
Цитата Сообщение от Спрашивающий Посмотреть сообщение
Ошибка синтаксиса.
DateDiff("m"; [Поле291]; Date()) >= 6 AND InStr(1;[Товар];"Продажа")>0
0
Заблокирован
11.12.2013, 12:12  [ТС] 11
Agapov_stas, Странно теперь вообще не красит.
0
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
11.12.2013, 12:18 12
Цитата Сообщение от Спрашивающий Посмотреть сообщение
закрасить только поля которые содержат слово "Продажа", а пропустить слово "Закупка" в поле "Товар".
Visual Basic
1
DateDiff("m"; [Поле291]; Date()) >= 6 AND [Товар]="Продажа"
1
3356 / 1775 / 83
Регистрация: 05.08.2010
Сообщений: 4,471
11.12.2013, 12:20 13
Цитата Сообщение от Спрашивающий Посмотреть сообщение
Странно теперь вообще не красит.
Видимо нет удовлетворяющих условию..
1
11.12.2013, 12:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2013, 12:20
Помогаю со студенческими работами здесь

Условное форматирование
Подскажите как обновить условное форматирование? Например если данные влияющие на формат в форме...

Условное форматирование в форме
здравствуйте! никогда не приходилось работать с условным форматированием в формах, поэтому прошу...

Условное форматирование не сохраняется в БД
Условное форматирование произвожу кодом vba. Кусок кода: Dim objFrc As FormatCondition...

Условное форматирование в форме
Добрый день. Форма содежит подчиненную таблицу с клиентами и статусами. Как сделать, чтобы стороки...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru