Microsoft Access:存在按钮以创建记录(如果不存在)

时间:2016-01-15 09:30:33

标签: forms ms-access

我有一个Microsoft Access 2007表单,其中包含以下表单源:

SELECT referrals.referral_date, referrals.*, schools.*, EAL_SLA_Assessment.*, referrals.forename & " " & referrals.surname AS combinedName, religions.religion, ethnicities.ethnicity
FROM (((referrals LEFT JOIN schools ON referrals.LCC_no = schools.LCC_no) LEFT JOIN ethnicities ON referrals.ethnicity = ethnicities.ID) LEFT JOIN religions ON referrals.religion = religions.ID) LEFT JOIN EAL_SLA_Assessment ON referrals.referral_number = EAL_SLA_Assessment.sla_id
ORDER BY referrals.referral_date DESC;

表格如下:

Database Front End

' SLA详细信息'表单的一部分由查询的'LEFT JOIN EAL_SLA_Assessment ON referrals.referral_number = EAL_SLA_Assessment.sla_id'部分填充,此查询可能返回一条记录(如果存在)或者可能返回NULL(如果不存在记录)。

我想要的是为用户呈现一个标题为"创建SLA" (服务水平协议)(如果不存在),以及查询检索的记录(如果找到)

我知道我是如何使用IF(NULL($query['SLA_id'])) {} ELSE {}语句在PHP中执行此操作的,但我对Access的了解不太透彻,而且我很难弄清楚如何做到这一点...... < / p>

任何帮助将不胜感激!

谢谢!

1 个答案:

答案 0 :(得分:0)

在Access VBA中,您可以检查IsNull(Me.Fieldname)。处理这个问题的最佳事件可能是On Current,因为它是每个记录的事情。

类似的东西:

Private Sub Form_Current()
    Me.cmdCreateSLA.Visible = IsNull(Me.EAL_SLA_Assessment.sla_id)
End Sub

注意:如果cmdCreateSLAForm_Current()运行时有焦点,请在尝试使按钮不可见之前使用Me.someOtherControl.SetFocus

问题:“SLA详细信息”选项卡似乎包含子表单,因为它在屏幕截图中完全为空。所以你不能把按钮放在那里 - 只有当有记录时才会显示带按钮的子表格。

因此按钮必须位于子窗体之外。