1

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

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

结构: 步骤 1) 用户从组合框 #1 中选择他/她的姓名 步骤 2) 组合框 #2 将仅显示分配给用户的位置——用户选择位置。步骤 3) 组合框 #3 将仅显示该位置的商品商店——用户选择商品

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

查找代码

Private Sub Whole_Count_GotFocus()
Dim Item_Filter As String
DoCmd.OpenTable "item_Detail"
Item_Filter = "[ItemId]=" & "'" & Me.Item.Value & "'"
MsgBox (Item_Filter) ' just for testing need to delete
Me.Units_in_UOM = DLookup("[QPC]", "[Item_Detail]", Item_Filter)
End Sub

我能做些什么来解决这个问题?

4

1 回答 1

0

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

  1. 重新排列查询中的字段,以便项目是第一列

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

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

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

如果 WeeklyCountOptions 是仅 ID 值保存为外键而非描述性信息的联结表,则组合框 RowSource 可能必须是连接 WeeklyCountOptions 和 ItemDetail 的 SQL,以便可以检索描述性信息。一切都取决于表结构和数据的保存方式。

于 2021-01-15T21:49:55.310 回答