MS Access过滤并根据按钮设置多个复选框true / false

时间:2018-04-30 19:48:56

标签: ms-access access-vba ms-access-forms

我有一个简单的库存数据库,其中包含一个简单的搜索文本选项,可以将其过滤到这些特定项目。我想"签出/签到"基于当前过滤的内容的多个项目。

因此,如果我查找" float",在拆分表单中,它将仅显示任何具有" float"的任何信息。在其描述中。从那里我想有一个按钮(" Check Out"),它会检查此文本框过滤器的所有结果为true,而不是单击每个项目。我附上了我的表单形状的照片。Access Example Photo

2 个答案:

答案 0 :(得分:1)

为执行某些SQL的按钮添加一些代码,以更新复选框后面的记录状态。这是一个带有print语句的示例,用于显示查询字符串在执行之前的内容:

Private Sub CheckInButton_Click()

DoCmd.SetWarnings False

sqlString = "UPDATE tbl_inventory SET tbl_inventory.Packed = False WHERE tbl_inventory.Item like '" & Me.txtFilter & "'" 

debug.print sqlString

DoCmd.RunSQL sqlString 

DoCmd.SetWarnings True

Me.SubForm.Requery

End Sub

答案 1 :(得分:0)

JShort让我回答了问题。这就是我这样做的原因,那里还有另一个新手。

根据建议,我创建了两个更新查询(qry_CheckIn / qry_CheckOut) 在我的字段“Packed”(复选框)中,我将Update To设置为:0(删除复选标记)/ -1(添加复选标记)。

在我的字段“项目”中,我说:

    Like "*" & [Forms]![frm_inventory]![txtFilter] & "*"

在我的文本过滤器搜索框中查看我的表单(请参阅问题部分中的图片)。

下一部分:(如果你有一个较新版本的访问权限打开“显示所有操作”)我按顺序为每个按钮添加了“点击”宏命令:

  1. SetWarnings

    警告开 - 否

  2. OPENQUERY

    查询名称 - qry_CheckIn(或输出)

  3. RunMenuCommand

    命令 - 刷新

  4. SetWarnings

    警告开 - 是

  5. 感谢JShort的协助。