如何以访问形式显示消息框以响应if-then

问题描述 投票:0回答:1

我有一个用于数据编辑的MS Access表单。此时,偶尔会需要更新数据字段的子集,但通常不需要更新。我已经隐藏了这些字段的控件,要求用户单击按钮以有意显示这些隐藏的控件。另外一个问题是,此处以“ A”结尾的案例无法更新,而以任何其他字母结尾的案例可能无法更新。

对于我的按钮的OnClick,我想使用IF语句来进行

  • ((如果它们在“ A”记录上)将“ A”记录排除在外,并向用户打开一个消息框,告知用户必须在主用例表单上对其进行更新。
  • ((对于任何其他记录)显示要更新的字段。

最后,当他们更新任何字段时,我需要将复选框设置为TRUE,以便将来在更新查询中不会覆盖该记录。

Private Sub btnUpDtAllegInfo_Click()

Dim Msg, Style, Title, Response

    Msg = "Message to user"
    Style = vbCritical
    Title = "Can't update allegation A here"

' if "A" allegation, show error message
If Me.AltIntCaseNumber Like "*A" Then
    Response = MsgBox(Msg, Style, Title, vbOK)

' if not "A", show the edit fields and hide the text box. 
Else
    Me.Location.Visible = True
    Me.LocationCity.Visible = True
    Me.LocationState.Visible = True
    Me.ProviderName.Visible = True
    Me.Site.Visible = True
    Me.SiteCity.Visible = True
    Me.SiteState.Visible = True
    Me.SiteZip.Visible = True
    Me.txtWarning.Visible = False

End If
End Sub

正在测试的字段是AltIntCaseNumber。除txtWarning外,其他字段都是可更新的,txtWarning是一组简单的方向,提醒用户注意规则(默认情况下可见-单击时隐藏)。我上面的大部分内容都来自我在网上找到的内容。这些零件在其他情况下都可以在其他地方使用,但是由于某种原因,当我以这种方式进行设置时,遇到了无法解决的“运行时错误5”。在调试时,“ Response = MsgBox()调用突出显示。

我发现的所有建议的帖子都与其他编程方法(C#,ASP.Net)有关,尽管我认为解决方法应该很简单。

if-statement access-vba
1个回答
0
投票

您的MsgBox调用完全是错误的。语法为:

MsgBox(prompt [, buttons] [, title] [, helpfile, context])

vbOK结尾

Response = MsgBox(Msg, Style, Title, vbOK)

不属于那里。

[没人再使用helpfile, context参数,但如果愿意,则必须同时提供它们。

因此,有了4个参数,您会得到Invalid procedure call or argument (Error 5)

© www.soinside.com 2019 - 2024. All rights reserved.