替换VLookup以在Access中自动填充具有多个值的表单

时间:2012-09-17 04:02:39

标签: ms-access

我目前有一个表单,其中包含一个与我创建的每个表相关的单独组合框。 这些包括:
  - 业务流程领域
  - 标题
  - ReportDescription
  - ProcessChain
  - MultiProvider
  - InfoProvider

我遇到了多个问题,但现在我只是把它缩小到一个问题 如果您选择较低的组合框,我希望表单自动填充,例如,如果您选择报表说明,它将填写标题和业务流程区域。我目前正在使用DLookup这样做,这很好。问题进一步发生在表格中 ReportDescription和ProcessChain之间以及ProcessChain和MultiProvider之间存在多对多关系。所以目前你可以选择一个MultiProvider,它只会选择第一个ProcessChain并从那里继续填写表格。
我的底部组合框中的My Current DLookup代码是:

If IsNull(cmbMultiProvider) Then
    cmbMultiProvider = DLookup("MultiProviderID", "MultiProvider", "MultiProviderID =" & Me.cmbInfoProvider.Column(2))
End If

If IsNull(cmbProcessChain) Then
    cmbProcessChain = DLookup("ProcessChainID", "ProcessChainMultiProvider", "ProcessChainID =" & Me.cmbMultiProvider.Column(2))
End If

If IsNull(cmbReportDesc) Then
    cmbReportDesc = DLookup("ReportID", "ReportDescription", "ReportID =" & Me.cmbProcessChain.Column(2))
End If

等等第四 所以如果下面的选择与上面的多个字段相关,我希望将这些DLookup语句替换为将停留在组合框中的内容,如果在组合框中选择的MultiProvider与许多Process Chains相关,那么组合框将下拉并仅包含相关字段。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

所以你要向后“向后”上升级联组合?也就是说,在大多数情况下,您将按降序选择这些项目,但是您按升序顺序向上移动。例如,如果您想深入研究汽车,通常先选择年份,然后选择制作,然后选择模型等等。

相反,您要选择Make,并让Model自动填充(假设该特定模型只有一个Make),然后将Year留空(因为Make可能有几年)模型)。

如果是这样,您能告诉我们有关您的数据结构的更多信息吗?报表描述,流程链和MultiProvider如何在表格中相关?