问题
在下面的表格中我想完成两件事
勾选后复选框时,即当post = true时,查询应仅针对当前记录运行,并在客户表中减去余额字段中的金额。
更新客户INNER JOIN [贷款支付] ON Customer.CUSID = [贷款支付] .CUSID SET Customer.CUSBalance = [Customer]![CUSBalance] - [Forms]![Loan Payment]![Amount] WHERE(((Customer.CUSID)= [表格]![贷款支付]![CUSID]));
但是,如果在LP6的例子中执行查询,那么[平衡] -20它的平衡 - 110即所有领域的查询
我发现条件格式不能应用于文本框
要求
答案 0 :(得分:0)
首先,我使用了错误的SQL。
UPDATE Customer SET Customer.CUSBalance = [Customer]![CUSBalance]-[Forms]![Loan Payment]![Amount]
WHERE (((Customer.CUSID)=[Forms]![Loan Payment]![CUSID]));
其次我发现条件格式不能应用于复选框,所以我必须找到一个解决方法,我找到了三个。
解决1
我锁定了Post
复选框并引入了一个按钮,如果Post = false
将运行查询并生成Post = True
现在我的表格
代码我在帖子按钮[点击程序]上使用
Private Sub Command19_Click()
If Me.Post = False Then
DoCmd.SetWarnings False
DoCmd.OpenQuery "updateCustomerLoan"
DoCmd.SetWarnings True
Me.Post = True
MsgBox ("Record has been Posted")
ElseIf Me.Post = True Then
MsgBox ("Record has already been posted")
End If
End Sub
解决2
我在post_update()
上应用了以下代码,我写了两个查询,一个查询(更新)和一个撤消查询(更新)
Private Sub Post_AfterUpdate()
If Me.Post = True Then
DoCmd.SetWarnings False
DoCmd.OpenQuery "payLoanONpost"
DoCmd.SetWarnings True
MsgBox ("The record has been posted")
ElseIf Me.Post = False Then
DoCmd.SetWarnings False
DoCmd.OpenQuery "unpayLoanONunpost"
DoCmd.SetWarnings True
MsgBox ("Record has been unposted")
End If
End Sub
大约3点工作(到目前为止最好,做我最初开始做的事情
这里我只使用了一个更新查询
Private Sub Post_AfterUpdate()
If Me.Post = True Then
DoCmd.SetWarnings False
DoCmd.OpenQuery "payLoanONpost"
DoCmd.SetWarnings True
MsgBox ("The record has been posted")
ElseIf Me.Post = False Then
MsgBox ("The record cannot unposted")
Me.Post = True
End If
End Sub