Вопрос №1. Есть ли что-нибудь побыстрее, чем DataGrid? Вроде решаю простейшую задачу, а оно так тормозит... Поясню: Есть MDB-база, в которой 2 таблицы: Компании и Сотрудники (к примеру). Работать с ними надо из VB-проекта. Размещаю на форме две пары контролов: ADODC + DataGrid. Первая пара настроена на таблицу Компании, вторая - на таблицу Сотрудники. Когда у первого ADODC происходит событие MoveComplete, то у второго ADODC - меняю RecordSource (пишу туда SQL-запрос) и делаю ему Refresh, и у второго грида делаю сразу после этого ClearFields и ReBind. В итоге вторая парочка отображает сотрудников только той компании, которая выбрана в первой парочке. Оно работает, но гораздо медленнее, чем если заменить DataGrid на TextBox-ы или чем если работать прямо в самом Аксессе (с помощью комбинации Форма + Подчинённая форма). Может, есть более шустрая технология?! Вопрос №2. Что это за секретные свойства такие у DataGrid-а - SelStartRow и SelEndRow? В скрытых свойствах их нет, если к ним пытаться обратиться - ругается, но в MSDN-е написано, что они есть, наряду с SelStartCol и SelEndCol. Эти-то есть, но они мне не нужны. Мне надо ВЫДЕЛИТЬ ряд в датагриде - т.е. не просто передвинуть стрелочку на селекторе, а ЗАЛИТЬ ряд - как бывает, если на селекторе щёлкнешь мышкой вручную. Я так понял, что программно это можно сделать только через эти два загадочных свойства, а они не пашут! Наверняка это можно ещё сделать и через API-функцию SendMessage, но я не знаю констант датагрида. Есть какие-нибудь идеи? Вопрос №3. Если мне надо выбрать (через SQL) записи из RecordSet-а, у которых поле "Название" (к примеру) РАВНО заданной строке, то никаких проблем: "... Where Companies.Название = <строка>". А что делать, если надо выбрать не по равенству, а по ВХОЖДЕНИЮ строки? Не писать же "... Where Instr(1, Companies.Название, <строка>) > 0" ?! ================================================================================== PS: Если будете по первому вопросу советовать какие-нибудь альтернативные ActiveX-контролы (вместо MS датагрида), то уж присоветуйте тогда контрол, который позволяет выделять цветом или шрифтом отдельные записи в его гриде ;-)
Ответить
|