我正在使用Access 2007.我有一个表单(孩子的详细信息),其中包含一个列出孩子特殊需求的列表框。列表框与子表和具有受控特殊需求列表的表存在多对多关系。列表框的RowSource是
{{1}}
当我尝试添加新记录时,列表框内容不会清除,继续锁定到与现有记录相关的值。
如何清除列表框的内容,以便用户可以添加与新孩子相关的需求?
随后,我发现在表单上从记录移动到记录时,列表框内容仍然是出现的第一条记录的内容。看起来我有一个严重的错误,大概是在我的SQL中!
答案 0 :(得分:1)
rowsource没有引用表单中显示的当前子项。
我认为你需要像
这样的东西SELECT Child.ID, Need.Category
FROM Need INNER JOIN
(Child INNER JOIN [Child-Need] ON Child.ID=[Child-Need].[Need FK])
ON Need.ID=[Child-Need].[Need ID]
WHERE Child.ID = Forms!frmChild!ID
ORDER BY [Category];
(用表单名称替换frmChild
)。
然后您需要在表单的myListbox.Requery
事件中使用OnCurrent
,以便在移动到其他记录时显示当前数据。
编辑:如果是子表单,则类似
WHERE Child.ID = Forms!frmFamily!frmChild.Form!ID
答案 1 :(得分:0)
尝试在表单加载中使用以下代码:
Dim intItemsInList As Integer
Dim intCounter As Integer
intItemsInList = Me![lstTest].ListCount
For intCounter = 0 To intItemsInList - 1
Me![lstTest].RemoveItem 0
Next