Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access MS Access-按下按钮时勾选记录复选框_Ms Access_Checkbox_Vba - Fatal编程技术网

Ms access MS Access-按下按钮时勾选记录复选框

Ms access MS Access-按下按钮时勾选记录复选框,ms-access,checkbox,vba,Ms Access,Checkbox,Vba,我正在使用Access 2003 我有一个表格,列出了几个付款记录,主要字段是支付了什么以及银行说支付了什么,有一个文本框显示差异,还有一个复选框,查看是否会处理付款 通常,用户必须手动查看差异字段,然后标记每个记录以进行处理,然后按“提交” 我想通过按下按钮来自动执行该过程,以便自动选择差异为0的所有记录,因此用户只需按“提交”即可。我觉得您需要更新复选框后面的字段,而不是复选框本身。这里有一个想法: 如果您正在寻找一个简单的解决方案,例如在表单上放置一个命令按钮并运行一个更新所有复选框的过程

我正在使用Access 2003

我有一个表格,列出了几个付款记录,主要字段是支付了什么以及银行说支付了什么,有一个文本框显示差异,还有一个复选框,查看是否会处理付款

通常,用户必须手动查看差异字段,然后标记每个记录以进行处理,然后按“提交”


我想通过按下按钮来自动执行该过程,以便自动选择差异为0的所有记录,因此用户只需按“提交”即可。

我觉得您需要更新复选框后面的字段,而不是复选框本身。这里有一个想法:
如果您正在寻找一个简单的解决方案,例如在表单上放置一个命令按钮并运行一个更新所有复选框的过程,您可以执行以下操作:

  • 创建命令按钮
  • 将其放置在表单的某个位置(可能是页眉或页脚)
  • 给它一个逻辑名称
  • 选择按钮属性>>事件>>单击>>事件过程
    …你可以做如下简单的事情


复选框是否已绑定(意味着其控制源是窗体记录源中的一个字段)?在某种程度上,复选框的存在只是为了让处理事件知道要处理哪些记录,但数据库中有一个用于它的字段,以便它知道哪些记录已被处理。窗体包含一个列表。该列表一次列出多个记录,每个记录都带有复选框和文本字段。我想浏览列表并查看每条记录,如果字段差异为零,请选中该记录复选框并移动到下一条记录。列表是一个子表单吗?不,表单详细信息与列表一样有效。谢谢!请记住,在我的情况下,它是有效的,因为表是临时的,所以直接从表中更改数据没有问题,但是如果它直接从实际表中读取数据,直接更改数据而不进行处理将是危险的。你是对的。这只是一个简单的例子,但如果信息是敏感的,则应设置条件,以确保只有某些人可以运行此过程,或仅在特定时间运行此过程。祝你好运
'Option Compare Database
'Option Explicit

'***Update a checkbox (yes\no field) depending on the value of a field***
'Table name:tblPayments
'Field name:difference
'Checkbox field name: toBeProcessed

Private Sub cmdUpdateRecords_Click()

Dim rstMyTable As DAO.Recordset 'Your table
Dim strSQL As String    'Your sql

'An SQL string based on the checkbox you want to update and the field you are assessing
strSQL = "UPDATE tblPayments SET tblPayments.toBeProcessed = IIf([difference]=0,True);"

'Execute the sql
CurrentDb.Execute strSQL

'Kill the object
If IsObject(rstMyTable) Then Set rstMyTable = Nothing
Me.Requery

End Sub