Ms access 试图通过删除DLookUp-Access 2007来提高性能
有没有人能给我一些建议,告诉我这里应该使用什么样的方法 -编辑 我有一个表单中与用户“风险地址”相关的字段,我有一个复选框,用于更新这些字段中的值,如果选中该复选框,则会将“联系人”详细信息从表tblInsPersDet加载到这些字段中。 如果未选中该复选框,用户可以输入新的详细信息 我在选中复选框时运行下面的子例程。为了得到字段值,我正在使用Dlookup,但我认为这是低效的?因为它每次都查询数据库/表Ms access 试图通过删除DLookUp-Access 2007来提高性能,ms-access,ms-access-2007,Ms Access,Ms Access 2007,有没有人能给我一些建议,告诉我这里应该使用什么样的方法 -编辑 我有一个表单中与用户“风险地址”相关的字段,我有一个复选框,用于更新这些字段中的值,如果选中该复选框,则会将“联系人”详细信息从表tblInsPersDet加载到这些字段中。 如果未选中该复选框,用户可以输入新的详细信息 我在选中复选框时运行下面的子例程。为了得到字段值,我正在使用Dlookup,但我认为这是低效的?因为它每次都查询数据库/表 Public Sub sameAsContact(frm As Form) frm.ri
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
有没有办法一次查询数据库?谁能给我一个指针,告诉我从所需记录中获取数据的更合适的方法
提前谢谢你的帮助
干杯
Noel您应该使用一个子表单,该表单将InsureId作为链接主字段,将ID作为链接子字段 重新编辑注释 我仍然相信您可以使用子窗体。如果勾选该复选框,请选择子窗体的相关记录:
Me.MySubformControlName.Form.RecordSource="Select * From tblInsPersDet Where ID=" _
& Me.txtinsuredId
或者将一个值填充到一个隐藏的或可见的字段中,称为txtsuredd
如果未选中该复选框,则可以移动到子窗体中的新记录
重新编辑注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
或者差不多。出于好奇,你为什么把所有的问题都放到社区维基上?你不支持吗?!这不是让很多人编辑问题吗?这不是通常的事情,这意味着你不会从一个好问题的投票中获益,但这取决于你。如果结果是一个更好的问题,可能有更好的答案,那就值得权衡。尽管如此,还是为这个建议干杯。顺便说一句,声誉>=2000的任何人都可以编辑其他人的帖子,无论该帖子是否是社区维基。嗨,Remou,我编辑了我的问题,因为我不相信我完全清楚复选框实现了什么。我认为我不能在这种情况下使用子表单?我仍然认为子表单是您需要的解决方案。我现在了解了该解决方案的工作原理。时间限制可能会使它难以实现,就我看来,我需要按照目前的组织方式重新构建数据库。但我肯定看到了这将是如何有效的。在这种情况下,记录集解决方案对我来说可能更有效,我们将研究这一点,因为它看起来将继续下去。为它的价值干杯,您似乎真的在与Access中的所有自然方法进行斗争,但也可能是因为您的表设计完全错误——信息不足,所以您在这条船上。