Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Подскажите, как автоматизировать код / 16 сообщений из 16, страница 1 из 1
21.12.2004, 15:30:23
    #32837232
Подскажите, как автоматизировать код
Access 2000. MDB.

Есть форма. На ней организован поиск по номеру.

При появлении данных, эти даные выделяются жирным шрифтом.

Код такой:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
    If Me.fldF1 <>  0  Then
        Me.fldF1.FontBold = True
    Else
        Me.fldF1.FontBold = False
    End If
    If Me.fldF2 <>  0  Then
        Me.fldF2.FontBold = True
    Else
        Me.fldF2.FontBold = False
    End If
    If Me.fldF3 <>  0  Then
        Me.fldF3.FontBold = True
    Else
        Me.fldF3.FontBold = False
    End If
    If Me.fldF4 <>  0  Then
        Me.fldF4.FontBold = True
    Else
        Me.fldF4.FontBold = False
    End If

Все работает. Одно но - очень громоздко, когда полей более 15.

Подскажите как можно автоматизировать такой код?
...
Рейтинг: 0 / 0
21.12.2004, 15:36:48
    #32837247
e_basil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, как автоматизировать код
Код: plaintext
1.
2.
3.
4.
5.
dim ct as control
dim i as integer
for i =  1  to n
set ct = me("fldF" & i)
ct.FontBold = (ct <>  0 )
next

a еще лучше условное форматирование - кода не надо
...
Рейтинг: 0 / 0
21.12.2004, 15:46:06
    #32837281
Подскажите, как автоматизировать код
А с использованием условного форматирования, как будет выглядить?
...
Рейтинг: 0 / 0
21.12.2004, 16:16:22
    #32837391
Подскажите, как автоматизировать код
e_basil, спасибо. Все работает.

А как модифицировать код:

Код: plaintext
1.
2.
3.
4.
5.
6.
dim ct as control
dim i as integer
for i =  1  to n
set ct = me("fldF" & i)
ct.FontBold = (ct <>  0 )
next

Если поля будут не fldF1, fldF2, fldF3, ..., fldFn , а fldF1, fldF3, fldF10, fldF15 ?

Т.е. нужно, чтобы, если нет такого поля, программа переходила к следущему и т.д.
...
Рейтинг: 0 / 0
21.12.2004, 17:26:28
    #32837609
e_basil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, как автоматизировать код
Пользователь2e_basil, спасибо. Все работает.

А как модифицировать код:

Код: plaintext
1.
2.
3.
4.
5.
6.
dim ct as control
dim i as integer
for i =  1  to n
set ct = me("fldF" & i)
ct.FontBold = (ct <>  0 )
next

Если поля будут не fldF1, fldF2, fldF3, ..., fldFn , а fldF1, fldF3, fldF10, fldF15 ?

Т.е. нужно, чтобы, если нет такого поля, программа переходила к следущему и т.д.

1. on error resume next
условное форматирование см в хелпе
...
Рейтинг: 0 / 0
22.12.2004, 09:24:20
    #32838168
Подскажите, как автоматизировать код
Пытаюсь использовать автоматизированный код с использованием условного форматирования:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
    For i =  1  To  70 
        Set ctr = Me("Поле" & i)
        If ctr <>  0  Then
            With ctr.FormatConditions
                .BackColor = RGB( 255 ,  255 ,  255 )
                .FontBold = True
                .ForeColor = RGB( 255 ,  0 ,  0 )
            End With
        Else
            ctr.FormatConditions = False
        End If
        On Error Resume Next
    Next

Ругается на строчку:

Код: plaintext
1.
.BackColor = RGB( 255 ,  255 ,  255 )

Пишет, что объект не поддерживает данный метод.

Подскажите где ошибка?
...
Рейтинг: 0 / 0
22.12.2004, 12:09:22
    #32838758
e_basil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, как автоматизировать код
а не проще ли в реж констр-ра формы установить условное форматирование для выбранных полей?

ошибка может быть из-за того, что
Код: plaintext
On error resume next 
стоит после выполнения кода, и
Код: plaintext
set ctr
указывает на несуществующий контрол или контрол типа, не поддерживающего метод
...
Рейтинг: 0 / 0
22.12.2004, 12:22:17
    #32838819
Shark
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, как автоматизировать код
Для отбора нужных контролов удобно испльзовать tag
For c1 in Me.Controls
If c1.Tag="Этот надо обработать" then Чтотоужасное
Next c1
...
Рейтинг: 0 / 0
22.12.2004, 12:23:22
    #32838825
Shark
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, как автоматизировать код
В смысле for each :^)
...
Рейтинг: 0 / 0
22.12.2004, 12:41:04
    #32838891
Подскажите, как автоматизировать код
У ctr нет такого свойства.

А если пишу Me.Поле1. то есть такое свойство FormatConditions.

Ведь:

Код: plaintext
Set ctr = Me("Поле" & i)

Где я ошибаюсь?
...
Рейтинг: 0 / 0
22.12.2004, 12:58:26
    #32838971
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, как автоматизировать код
Пользователь2А как модифицировать код:

Код: plaintext
1.
2.
3.
4.
5.
6.
dim ct as control
dim i as integer
for i =  1  to n
set ct = me("fldF" & i)
ct.FontBold = (ct <>  0 )
next

Если поля будут не fldF1, fldF2, fldF3, ..., fldFn , а fldF1, fldF3, fldF10, fldF15 ?
dim s as variant
for each s in array("fldF1", "fldF3", "fldF10", "fldF15")
set ct=me(s)
...
...
Рейтинг: 0 / 0
22.12.2004, 13:07:15
    #32838998
Поль
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, как автоматизировать код
Можно использовать конечно:

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

Но! Хочется знать как можно это реализовать программно.

Владимир Саныч, я просто привел пример. Полей около 20, надо, чтобы он в цикле все обрабатывал.
...
Рейтинг: 0 / 0
22.12.2004, 13:15:16
    #32839032
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, как автоматизировать код
ПольВладимир Саныч, я просто привел пример. Полей около 20, надо, чтобы он в цикле все обрабатывал.
for each s in array("vghg", "dghjdhgjd", "gfh", "fghdhg", "dghj", "ghdjhgd", "dgjnhgdd", "sdfhg", "ghdjs", "sfhsg", "gdhjkjfh", "sfghfd", "fhk", "dghjdg", "dghjdgh", "dghj", "sfghsf", "jhkf", "zdfhg", "sfdhh")
...
Рейтинг: 0 / 0
22.12.2004, 13:25:42
    #32839088
Подскажите, как автоматизировать код
Владимир Саныч, а как с условным форматированием реализовать?
...
Рейтинг: 0 / 0
22.12.2004, 15:43:45
    #32839588
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, как автоматизировать код
Пользователь2Владимир Саныч, а как с условным форматированием реализовать?
Я не знаю.
...
Рейтинг: 0 / 0
22.12.2004, 16:23:17
    #32839732
Подскажите, как автоматизировать код
Саныч, ну как же так? :)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Подскажите, как автоматизировать код / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]