У меня есть база данных (хранящаяся в файле Access .MDB), в которой записываются сотрудники и их отсутствие, например, праздники, болезни, учебные курсы, даты начала и окончания, а также часы потерянного рабочего времени.
Затем у меня есть dbgrid, привязанная к «основному» запросу ADO, который находит всех сотрудников, удовлетворяющих выбранным критериям диапазона дат, отдела, строки поиска по имени, суммируя часы продуктивного потерянного времени.
У меня есть еще одна таблица dbgrid, связанная с таблицей ADO "detail", содержащей записи об отсутствии.
Желаемый эффект заключается в том, что база данных dbgrid должна содержать только те записи из таблицы Absence, которые соответствуют строке, выбранной в основной записи (Таблицы отсутствия «основного» персонала и «подробности» содержат общее поле EmployeeID).
Хотя я могу добиться этого с помощью запросов ADO, созданных на лету, меняя запрос каждый раз, когда пользователь переходит к другому главному персоналузапись, я надеялся использовать подробный DBGrid в качестве основного метода удаления, обновления,d добавление дополнительных записей об отсутствии в комплекте с поиском в сетке;поэтому пользователь может выбирать типы записей без необходимости запоминать код для этого типа.
Я также хотел бы, чтобы изменения в этой таблице подробностей были отражены в сводках в основной dbgrid.
Iдобились этого, используя подробный ADOTable, связанный как MasterDetail с запросом персонала, но необходимо отфильтровать значение True и управлять onfilterevent в коде;но с увеличением размера базы данных она становится все медленнее и медленнее.
Есть ли что-то, что я могу сделать, чтобы улучшить эту производительность, или я буду вынужден сделать подробный dbgrid только для чтения и все отсутствиезаписи, введенные через другую форму или панель?