我有一个名为[Part Number]
的链接表,在本地,用户需要能够选择与部件号对应的复选框(是/否)字段,以便使用其他命令对其执行操作。目前,为了在显示的查询中设置复选框,我有一个单独的本地表,它维护[Part Number]
中所有部件号的列表,这些部件号将它们与一个复选框配对,然后复选框将滚动到显示的查询中。我想要做的是查询只是直接查询[Part Number]
并添加它自己的是/否字段来摆脱必须不断更新的表,以确保所有部件号都被考虑在内。
我知道这可以用于文本字段:
SELECT
[Part Number].Concatenate,
[Part Number].[Part Nbr] & " " & Date() AS [Select]
FROM [Part Number];
将在查询中添加一个名为“选择”的字段,其中包含部件号和旁边的日期。我希望该字段为Yes/No
字段。
编辑:
我不希望[Part Number]
表上有Yes / No字段,因为它在多个用户之间共享,并且会干扰数据库根据选择所采取的操作。我也不想使用表,因为部件列表经常更改,前端表必须不断地从后端表[Part Number]
进行更新,以确保一切正常。基于[Part Number]
表的选择查询将在每次部件列表更改时自动更新,因为它是查询而不是表。此查询将滚动到显示的查询中,该查询将多个表和查询联系在一起。
答案 0 :(得分:0)
正如@DonJewett所说,对于是/否复选框字段,这是不可能的。你最好的选择就是按照自己的方式去做;每次打开表单时,最简单的方法是清除“是/否”表并重新填充。
(在您选择表单Form_Load()
上frmMultiSelect
):
Dim strSQL As String
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT * FROM tblNodes")
'Clear current links
strSQL = "DELETE * FROM tblMultiSelect"
db.Execute strSQL
'Create '0' state links for every node in tblNodes
rs.MoveFirst
Do Until rs.EOF = True
strSQL = "INSERT INTO tblMultiSelect(node_id, selected) "
strSQL = strSQL & "VALUES (" & rs![node_id] & ", 0);"
db.Execute strSQL
rs.MoveNext
Loop
'Update subform
Me.frmMultiSelect.Requery