|
|
|
| Есть кусок кода
If flag_5.Value = True Then ck = ck & "[DATE_IN]>=" & Format(pole_c.Value, "\#mm\/dd\/yyyy\#")
If flag_6.Value = True Then ck = ck & " And [DATE_IN]<= " & Format(pole_do.Value, "\#mm\/dd\/yyyy\#")
If flag_1.Value = True Then ck = ck & "[AUTH]= pole_auth.Value"
If flag_2.Value = True Then ck = ck & " and [SVC]= " & Format(pole_svc.Value)
If flag_4.Value = True Then ck = ck & " And [SECONDS]= " & Format(pole_seconds.Value)
первые две и последняя работают нормально. Конкретно третья не пашет. Полагаю, что с форматом данных в таблице. В столбце AUTH данные числовые, но почему-то сохранены как текст, об этом мне говорит Excel. МОжет надо формат прописать правильно или что-то другое, в общем помогайте= )
версия 2003 | |
|
| |
|
|
|
| [AUTH] - это поле таблицы? Какой тип?
почему везде вы используете "&" для формирования строки, а в AUTH нет?
нужно так:
....& "[AUTH]=" & pole_auth.Value
|
А если [AUTH] текст, то
....& "[AUTH]='" & pole_auth.Value & "'"
|
| |
|
| |
|
|
|
| использовал, просто скопировал один из пробных вариантов= )) А вот про одиночные кавычки позабыл, спасибо= )) все бы так решалось= ))) Благодарю еще раз= ) | |
|
| |
|
|
|
| Замечание...
У вас возможна ситуация, когда flag_5.Value = True, flag_6.Value = False, flag_1.Value = True?
В этом случае вы получите смесь из двух критериев без оператора And.
И наоборот, если flag_5.Value = False и flag_1.Value = False - вы получите критерий, начинающийся с And.
Я бы во всех вариантах в начале указывал And, а в собранной строке отбросил бы первый-лишний. Так - надежнее. | |
|
| |
|
|
|
| Да, спасибо, уже сам так сделал= )) | |
|
| |