如何在 Access 中将组合框与 dlookup 结合使用

问题描述

目标:表单将使用组合框中选择的项目提供正确的计量单位和每个容器的相应数量。度量单位在单独的表格中。

问题: dlookup 正在查找用户 ID 而不是项目。我认为这是因为绑定列

结构: 步骤 1) 用户从组合框 #1 中选择他/她的名字 步骤 2) 组合框 #2 将仅显示分配给用户的位置——用户选择位置。 第 3 步)组合框 #3 将只显示该位置存储的项目——用户选择项目

> take 10 $ runStreamProcessor fibsHughes (repeat ())
[0,1,2,3,5,8,13,21,34]

dlookup 代码

Code for combo box #3
Private Sub Item_GotFocus()
Dim user_filter,location_filter As String
user_filter = Me.Count_By
location_filter = Me.Location
With Me.Item
    .RowSource = "SELECT WeeklyCountOptions.User,WeeklyCountOptions.Location,WeeklyCountOptions.Item" _
                    & " FROM WeeklyCountOptions" _
                    & " WHERE (((WeeklyCountOptions.User)='" & user_filter & "') AND ((WeeklyCountOptions.Location)='" & location_filter & "'));"
    ' by having here the property sheet is ignore
    .BoundColumn = 1
    .ColumnCount = 3
    .ColumnWidths = "0in.;0in.;1in."
End With
End Sub

我该怎么做才能解决这个问题?

解决方法

是的,组合框具有用户值。不需要在该组合中将 User 和 Location 字段包含为列。但是,如果您真的想要,请考虑以下选项:

  1. 重新排列查询中的字段,使项目成为第一列

  2. 将第三列设置为绑定列

  3. 通过索引引用第三列,索引从零开始:Me.Item.Column(2)

假设数字自动编号 ID 设置为主键并保存为外键(应该是这种情况),所有 3 个组合框都应具有包含 ID 和描述性字段的 RowSource,并使用 ID 进行过滤。

如果 WeeklyCountOptions 是一个连接表,其中只有 ID 值被保存为外键,而不是描述性信息,组合框 RowSource 可能必须是将 WeeklyCountOptions 与 ItemDetail 连接起来的 SQL,以便可以检索描述性信息。一切都取决于表结构和数据的保存方式。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...