【问题标题】:How to add a Yes/No Column Into an Access 2007 Select Query如何在 Access 2007 选择查询中添加是/否列
【发布时间】:2015-07-30 17:46:46
【问题描述】:

我有一个名为[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] 表的选择查询将自动更新,因为它是一个查询,而不是一个表。此查询将滚动到显示的查询中,该查询将多个表和查询联系在一起。

【问题讨论】:

标签: sql ms-access ms-access-2007


【解决方案1】:

正如@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

【讨论】:

  • 该死,这太容易了……至少我有一些东西可以工作,即使它不像我希望的那样简单。
  • 我花了一段时间试图让它为我几周前构建的东西工作,但没有成功。然而,最后,我决定我实际上非常喜欢这种方法的工作方式。避免使用计算字段,操作非常简单。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-01
  • 1970-01-01
相关资源
最近更新 更多