Дорогие друзья,
Может ли кто-нибудь объяснить, почему совершенно корректные инструкции SQL, прекрасно работающие в Access, не работают с рекордсетом в VB, если они содержат оператор Like?
'Например, такая инструкция не найдет ни одной записи:
SELECT * FROM myTable WHERE Field1 Like '*текст*'
'В то же время она хорошо сработает как фильтр:
myRecordset.Filter = (Field1 Like '*текст*')
'А инструкция Not Field1 Like '*текст*' вообще не работает: в WHERE даст неправильные
результаты выборки, а в Filter — сообщение об ошибке.
'В чем тут дело?
Вопрос № 2. Как избавиться от контекстного меню, появляющегося на текст-боксах по щелчку правой кнопкой? Хочу заменить это меню своим собственным, но ничего не выходит.
Может ли кто-нибудь объяснить, почему совершенно корректные инструкции
Потому что ничего корректного в этих инструкциях нет. Потому что надо читать документацию, а уже потом делать выводы о том, что инструкции корректны. Потому что в ADO символы шаблона % и _, а не * и ?.
myRecordset.Filter = (Field1 Like '*текст*')
Это эквивалентно строке myRecordset.Filter = "True".
Правильно было бы myRecordset.Filter = "Field1 Like '*текст*'", но кому интересна документация?
А инструкция Not Field1 Like '*текст*' вообще не работает: в WHERE даст неправильные результаты выборки
См. выше.
а в Filter — сообщение об ошибке
Кури маны, наконец. Пора. Наступил предел насыщения.
NOT не входит в число разрешённых операторов для Filter.
Как избавиться от контекстного меню, появляющегося на текст-боксах по щелчку правой кнопкой?
По здравому размышлению, на этот вопрос отвечать не буду. Слишком избит и затаскан.