解决Ms Access连续表格?

时间:2014-03-14 01:41:53

标签: sql database vba ms-access ms-access-2013

问题

enter image description here

在下面的表格中我想完成两件事

  • 勾选后复选框时,即当post = true时,查询应仅针对当前记录运行,并在客户表中减去余额字段中的金额。

    更新客户INNER JOIN [贷款支付] ON Customer.CUSID = [贷款支付] .CUSID SET Customer.CUSBalance = [Customer]![CUSBalance] - [Forms]![Loan Payment]![Amount] WHERE(((Customer.CUSID)= [表格]![贷款支付]![CUSID]));

但是,如果在LP6的例子中执行查询,那么[平衡] -20它的平衡 - 110即所有领域的查询

  • 当查询已运行并且帖子已更改为true时,当前记录的帖子复选框将被禁用,以便查询可能不会运行两次或更多次

我发现条件格式不能应用于文本框

要求

  1. 我想知道我是否可以实现我想要的以及如何实现目标?
  2. 我目前正在尝试实现的任何解决方法或替代解决方案。

1 个答案:

答案 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

现在我的表格

MY FORM NOW

代码我在帖子按钮[点击程序]上使用

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

enter image description here