отчет в MS Access

Mr.Pepper
Дата: 07.03.2008 09:01:57
Всем доброго времени суток 
Уважаемые специалисты!
Помогите решить следующую задачу.

Есть основная таблица примерно следующего вида:
Поле1 Поле2
ААА 11
БББ 22
ССС 44
ААА 55
ВВВ 66
ДДД 44
ВВВ 33
ААА 44

И есть справочники, содержащие значения для Поля1, Поля2.
В основной таблице кроме значений справочников могут быть и другие значения.

Проблема: нужно создать отчет на основе основной таблицы, в котором поля отчета, содержащие значения Поля1 и Поля2 должны подкрашиваться цветом (например – красным), если они совпадают со значениям справочников.
Программист-Любитель
Дата: 07.03.2008 09:27:54
Соединить таблицу со справочниками LEFT JOIN.
На событие форматирование секции отчета проверять значение из справочника менять цвет поля.
mds_world
Дата: 07.03.2008 09:28:08
Создаете для отчета запрос (он будет источником отчета)
Select ot.Поле1, ot.Поле2, ...ДругиеПоляОсновнойТаблицы, s1.Код1, s2.Код2
From ОсновнаяТаблица ot, Справочник1 s1, Справочник2 s2,
ot left join s1 on ot.Поле1=s1.Код1,
ot left join s2 on ot.Поле2=s2.Код2

Делаете отчет на основе этого запроса. Поля s1.Код1, s2.Код2 также разместите в нем, но их, если не требуется, можно сделать скрытыми. Они нужны для условного форматирования. А дальше делаете условное форматирование. Смотрите хелп и поиск по форуму, ключевые слова для поиска "FormatConditions", "условное форматирование".
mds_world
Дата: 07.03.2008 09:28:38
апппаздал!
Mr.Pepper
Дата: 07.03.2008 10:01:01
Сделал запрос:
SELECT table1.field1, S1.field1, table1.field2, S2.field2, table1.field3, S3.field3
FROM ((table1 LEFT JOIN S1 ON table1.field1 = S1.field1) LEFT JOIN S2 ON table1.field2 = S2.field2) LEFT JOIN S3 ON table1.field3 = S3.field3;

Нарисовал отчет и навесил на открытие отчета выражение:

Private Sub Report_Open(Cancel As Integer)
If Me.S1_field1 Is Null Then Me.table1_field1.BackColor = 12632256
End If
End Sub

ругается "Compile Error: End If Without block If"

может неверно написано условие Is Null?
HTTP
Дата: 07.03.2008 10:08:50
Mr.Pepper
Сделал запрос:
SELECT table1.field1, S1.field1, table1.field2, S2.field2, table1.field3, S3.field3
FROM ((table1 LEFT JOIN S1 ON table1.field1 = S1.field1) LEFT JOIN S2 ON table1.field2 = S2.field2) LEFT JOIN S3 ON table1.field3 = S3.field3;

Нарисовал отчет и навесил на открытие отчета выражение:

Private Sub Report_Open(Cancel As Integer)
If Me.S1_field1 Is Null Then Me.table1_field1.BackColor = 12632256
End If
End Sub

ругается "Compile Error: End If Without block If"

может неверно написано условие Is Null?

Private Sub Report_Open(Cancel As Integer)
If Me.S1_field1 Is Null Then
Me.table1_field1.BackColor = 12632256
End If
End Sub
Программист-Любитель
Дата: 07.03.2008 10:09:39
Не то событие.
Mr.Pepper
Дата: 07.03.2008 10:16:21
не сочтите за тупость :)
но какое тогда событие то что нужно?
mds_world
Дата: 07.03.2008 10:19:55
Mr.Pepper
не сочтите за тупость :)
но какое тогда событие то что нужно?

Программист-Любитель
На событие форматирование секции отчета
Mr.Pepper
Дата: 11.03.2008 16:43:06
Спасибо всем за подсказки!
Вроде заработало :)