Попытка улучшить производительность путем удаления DLookUp - Доступ 2007

мог кто-либо возможно давать мне некоторые подсказки относительно соответствующего метода для использования здесь.

Править

У меня есть поля в форме, которые касаются пользователей 'адрес риска', и у меня есть флажок, который обновляет значения в этих полях что если выбранные загрузки детали 'контакта' (от таблицы tblInsPersDet) в эти поля. Если флажок не устанавливается, пользователь может ввести новые детали.

Я работаю ниже sub стандартной программы на выборе флажка. Для получения значений полей, я использую Dlookup, но я полагаю, что это неэффективно? Поскольку это запрашивает базу данных/таблицу каждый раз.

Public Sub sameAsContact(frm As Form)

frm.riskAddress1 = DLookup("[add1]", "tblInsPersDet", "[ID] =" & frm.insuredId)
frm.riskAddress2 = DLookup("[add2]", "tblInsPersDet", "[ID] =" & frm.insuredId)
frm.riskAddress3 = DLookup("[add3]", "tblInsPersDet", "[ID] =" & frm.insuredId)
frm.riskAddress4 = DLookup("[add4]", "tblInsPersDet", "[ID] =" & frm.insuredId)
frm.riskAddress5 = DLookup("[add5]", "tblInsPersDet", "[ID] =" & frm.insuredId)
frm.cmbRiskCountry = DLookup("[country]", "tblInsPersDet", "[ID] =" & frm.insuredId)
frm.riskDstToProp = DLookup("[distToProp]", "tblInsPersDet", "[ID] =" & frm.insuredId)
frm.riskInsCompany = DLookup("[insCompany]", "tblInsPersDet", "[ID] =" & frm.insuredId)
frm.riskPolNo = DLookup("[polNo]", "tblInsPersDet", "[ID] =" & frm.insuredId)
frm.riskBldSi = DLookup("[bldSi]", "tblInsPersDet", "[ID] =" & frm.insuredId)
frm.riskContSi = DLookup("[contSi]", "tblInsPersDet", "[ID] =" & frm.insuredId)
frm.riskExcess = DLookup("[excess]", "tblInsPersDet", "[ID] =" & frm.insuredId)
frm.riskOgLinkMort = DLookup("[linkMort]", "tblInsPersDet", "[ID] =" & frm.insuredId)
frm.riskOgAddOn = DLookup("[addOn]", "tblInsPersDet", "[ID] =" & frm.insuredId)

End Sub

Существует ли способ запросить базу данных однажды? Мог кто-либо давать мне подсказку относительно более соответствующего метода для получения данных из необходимой записи.

Заранее спасибо за любое Рождество Аплодисментов справки

1
задан 3 revs, 2 users 100% 5 August 2010 в 00:32
поделиться

1 ответ

Вы должны использовать подчиненную форму, которая имеет insuredId в качестве поля Link Master и ID в качестве поля Link Child.

РЕДАКТИРОВАТЬ примечание

Я все еще верю, что вы можете использовать подчиненную форму. Если флажок установлен, либо выберите соответствующую запись для подчиненной формы:

Me.MySubformControlName.Form.RecordSource="Select * From tblInsPersDet Where ID=" _
 & Me.txtinsuredId 

, либо введите значение в скрытое или видимое поле, например txtinsuredId.

Если флажок не установлен, вы можете перейти к новой записи в подчиненной форме.

ИЗМЕНИТЬ примечание № 2

Если вам нужно использовать что-то вроде DlookUp, используйте набор записей:

 Set rs=CurrentDB.OpenRecordset("Select * From tblInsPersDet Where ID=" _
 & Me.txtinsuredId)

 For each fld in rs.Fields
    frm("txt" & fld.name)=fld
 Next

или около того.

2
ответ дан 2 September 2019 в 22:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: