Подчиненная форма.

Ma0

Есть основная форма (frmClients) с след. полями:IdClient (Number)Client (Text)......Есть подчиненная табличная форма(frmClRates) с полями:Client (Number)DateRat (Date)Rate ......У подчиненной формы LinkChildFields = Client, LinkMasterFileds = IdClientРекордсеты формам задаю при открытии основной формы:
Dim Dbs as Database
Set Dbs = OpenDatabase("Путь\имя базы")
Set Me.Recordset = dbs.OpenRecordset("Clients", dbOpenDynaset)
Set Forms("frmClients").Controls("frmClRates").Form.Recordset = dbs.OpenRecordset("ClRates", dbOpenDynaset)
Так вот в подчиненной форме выводяться все записи таблицы "ClRates", а надо чтоб выводились данные текущего клиента.Пробывал назначить фильтр подчиненной формы:
"Client = " & Forms("frmClients").Controls("IdClient")
не помогает. Подскажите как правильно все организовать??
8 ответов

Ma0

Рекордсеты формам задаю при открытии основной формы:
Почему именно так? В этом есть необходимость?


Ma0

Т.к. путь к базе с данными, как и имя базы могут меняться. Сам путь и имя базы храняться в локальной таблице и вытаскиваются из нее когда клиент коннектится к базе с данными.


Ma0

Тогда вот этот кусок:
Dim Dbs as DatabaseSet Dbs = OpenDatabase("Путь\имя базы")Set Me.Recordset = dbs.OpenRecordset("Clients", dbOpenDynaset)Set Forms("frmClients").Controls("frmClRates").Form.Recordset = dbs.OpenRecordset("ClRates", dbOpenDynaset)
можно заменить на:Me.Recordsource = "select * from [Путь\имя базы].Clients"Me!frmClRates.Form.Recordsource = "select * from [Путь\имя базы].ClRates"


Ma0

Так заработало, спасибо большое.


Ma0

Еще такой вопрос, какая организация доступа к таблице будет быстрей работать:
Me.Recordsource = "select * from [Путь\имя базы].Clients"
или
Set Me.Recordset = dbs.OpenRecordset("Clients", dbOpenDynaset)
?


Ma0

Насчет быстрее не знаю, можно проверить. Но во втором варианте расходуется память под всякие датабейсы и рекордсеты.


Ma0

Я вот тоже не проверял, но сложилось такое впечатление что
Me.Recordsource = "select * from [Путь\имя базы].Clients"
работает медленнее, по этому я и не стал вначале реализовывать такой подход.


Ma0

Я вот тоже не проверял, но сложилось такое впечатление что работает медленнее, по этому я и не стал вначале реализовывать такой подход.
А проверить?