|
|
|
Как организовать быстрый поиск с помощью свойства рекодсета Filter?
|
|||
|---|---|---|---|
|
#18+
Есть ADO рекодсет из таблицы Access, из которого пользователь должен выбрать одну запись. На форме быстрый поиск. По мере ввода в текстовое поле, нужно фильтровать этот рекордсет. Вопрос, как этот делать? Пока у меня такой код: Private Sub txtQuickSearch_Change() rstMain.Filter = grdMain.Columns(grdMain.Col).DataField & " like '" & txtQuickSearch.Text & "%'" End Sub Но, что если поле числовое (или DateTime)? Как применить в этом случае LIKE? Каков сиснтаксис конвертации типа поля (в контексте использования св-ва Filter)? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2006, 10:44:37 |
|
||
|
Как организовать быстрый поиск с помощью свойства рекодсета Filter?
|
|||
|---|---|---|---|
|
#18+
при числовом нет ковычек '' но, попробуй так Like Clng('" & txtQuickSearch.Text & "%') а при дате так Like Cdate('" & txtQuickSearch.Text & "%') но не факт что сработает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2006, 10:55:56 |
|
||
|
Как организовать быстрый поиск с помощью свойства рекодсета Filter?
|
|||
|---|---|---|---|
|
#18+
И спецсимволов % или * тоже нет при числовом и DateTime? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2006, 11:15:23 |
|
||
|
Как организовать быстрый поиск с помощью свойства рекодсета Filter?
|
|||
|---|---|---|---|
|
#18+
при использовании DateTime не очень корректно будет менять дату в текстовом поле DateTime не стоит использовать при like поскольку использовать при этом нужно будет контрол даты как DTPicker а он по любому будет менять все числа в дате where OrderID like '11%'= такой код работает OrderID=числовая таблица ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2006, 11:54:06 |
|
||
|
Как организовать быстрый поиск с помощью свойства рекодсета Filter?
|
|||
|---|---|---|---|
|
#18+
Спасибо. Но мои опыты показывают, что % не работает с числовым полем. Вот "ID LIKE 3" работает, а "ID LIKE 3%" не работает (ошибки нет но выдается 0 записей). И все же мне очень интересно как применить LIKE с типом поля DateTime. В DAO, например, все это делалось очень просто "CStr([ПолеЛюбогоТипа]) LIKE '...*'" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2006, 12:04:03 |
|
||
|
Как организовать быстрый поиск с помощью свойства рекодсета Filter?
|
|||
|---|---|---|---|
|
#18+
а так "ID LIKE '3%'" твой пример в DAO не работает в АDO? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2006, 12:47:14 |
|
||
|
Как организовать быстрый поиск с помощью свойства рекодсета Filter?
|
|||
|---|---|---|---|
|
#18+
а так "ID LIKE '3%'" С апострофами для LIKE с числовым полем возникает ошибка. твой пример в DAO не работает в АDO? К сожалению, нет. У ADO-шного свойства Filter вообще много ограничений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2006, 12:57:32 |
|
||
|
Как организовать быстрый поиск с помощью свойства рекодсета Filter?
|
|||
|---|---|---|---|
|
#18+
Может поможет использования SQL запроса а не фильтра ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2006, 13:02:56 |
|
||
|
Как организовать быстрый поиск с помощью свойства рекодсета Filter?
|
|||
|---|---|---|---|
|
#18+
Поможет конечно. Но иногда бывает удобнее именно св-во Filter использовать, да и работает оно быстрее. Поэтому мне и интересно, как же оно все-таки с датами и с LIKE-ом работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2006, 14:36:56 |
|
||
|
|

start [/forum/topic.php?fid=60&fpage=292&tid=2166318]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
28ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
20ms |
get tp. blocked users: |
1ms |
| others: | 186ms |
| total: | 259ms |

| 0 / 0 |
