【问题标题】:Compile Error: Argument Not Optional | Access VBA编译错误:参数不是可选的 |访问 VBA
【发布时间】:2015-03-21 23:39:38
【问题描述】:

我有一个关于 Access 的表格,其中有 3 个组合框(部分、房间:白宫、房间:丘吉尔)。我需要它,所以当从“部分”组合框中选择“白宫”时,“房间:丘吉尔将被锁定”。而“丘吉尔”则相反。

我有代码:

Private Sub Section_Change()
If Section.Value = "White House" Then
  Rooms__White_House.Enabled = True
  Rooms__Churchills.Enabled = False
Else: Section.Value = "Churchills"
  Rooms__White_House.Enabled = False
  Rooms__Churchills.Enabled = True
End If
End Sub

但是当我测试表单时,它会抛出错误:

Compile Error: Argument Not Optional

感谢任何帮助。提前致谢!

【问题讨论】:

  • 告诉我们编译器在哪一行中断总是有帮助的。它节省了时间,而且通常可以通过检查来确定问题。

标签: vba ms-access


【解决方案1】:

问题是Section 是一个保留字。因此编译器不会将其识别为组合框的名称。只需将组合的名称更改为其他名称,例如cboSection,您的代码将编译。 (您自然需要更改代码以匹配新名称)。

此链接显示了在使用 Access http://allenbrowne.com/AppIssueBadWord.html 时应避免使用的名称列表

顺便说一句,你的台词

Else: Section.Value = "Churchills"

似乎有点奇怪,因为它正在设置组合的值。我猜你的意思是评论如果你进入 Else 部分,值必须是什么。如果是这种情况,那么您需要在评论前添加撇号,即

Else: 'Section.Value = "Churchills"

【讨论】:

  • 你好 DeanOC,你今天好吗?我按照你说的做了,现在可以了。我还为您的链接添加了书签。谢谢你的帮助!我确实是想评论它,是的,这是其中一个星期哈哈。再次感谢伙计。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多