作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Access 2010 中有一个支出子表单,其中列出了每年与该项目相关的预测成本。大多数项目只有一年,但有些项目不止一年。每个成本旁边都有一个“最终”复选框,应在确认金额时选中该复选框,即。每年年底。
它基本上看起来像这样:
Year | Cost | Final
--------+-----------+--------------------
2017 | $100 | [checked box]
2018 | $200 | [unchecked box]
| | [unchecked box]
表外还有另一个字段 FinalCost,它将“成本”字段中的所有内容相加。现在,它会填写任何选中“最终”框的年份的金额。 仅应在选中所有最终复选框时填写。
例如。现在,即使选中了 2017 年的 Final,它也应该不会显示任何内容。当检查 2018 年时,应该显示 300 美元。相反,即使复选框仍然为空,它也会显示 100 美元。
这是此表单的代码。
Private Sub Form_AfterUpdate()
Dim rs1, rs2 As Recordset
Dim sql, sql2 As String
sql = "SELECT Sum(Amount) as Final From Expenditures " & _
"Where ProjNo = '" + Me.ProjNo + "' And Final = True Group by ProjNo"
sql2 = "SELECT FinalExpenditure From ActivityCash " & _
"Where ProjNo = '" + Me.ProjNo + "'"
Set rs1 = CurrentDb.OpenRecordset(sql, dbOpenDynaset, dpinconsistent)
Set rs2 = CurrentDb.OpenRecordset(sql2, dbOpenDynaset, dpinconsistent)
If rs1.RecordCount > 0 Then
If rs2.RecordCount > 0 Then
Do While Not rs2.EOF
rs2.Edit
rs2!FinalExpenditure = rs1!Final
rs2.Update
rs2.MoveNext
Loop
End If
End If
rs2.Close
rs1.Close
Set rs1 = Nothing
Set rs2 = Nothing
End Sub
执行此操作的最佳方法是什么?
编辑:选中最后一个框时,会自动添加一个新行,其中带有未切换的复选框,但没有信息。
最佳答案
将以 sql = ...
开头的语句替换为:
sql = "SELECT SUM(e1.Amount) AS Final " & _
" FROM Expenditures AS e1 " & _
" WHERE NOT EXISTS (SELECT 'x' FROM Expenditures e2 WHERE e2.Final=0 AND e1.ProjNo = e2.ProjNo) " & _
" AND e1.ProjNo = '" & Me.ProjNo & "'"
仅当项目的所有探险都标记为最终时,此查询才会返回数据。当您检查 rs1.RecordCount > 0
时,如果此查询未返回任何记录,则不会有任何更新。
关于ms-access - 当所有复选框切换时填写字段 Access 2010,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30197000/
我是一名优秀的程序员,十分优秀!