“编译错误:在End Sub,End Function ...之后可能只显示注释。”Access 2010 VBA

时间:2012-09-08 03:37:58

标签: vb6 ms-access-2010

我正在创建一个表单,我在VBA窗口中创建了我的第一个函数。该功能创建按钮。在“结束功能”之后输入任何内容后,我收到错误 - “只有评论出现在......之后”出了什么问题?我把功能放在了错误的区域吗?

这是我的代码:

Option Compare Database 
Option Explicit

Function MainMenuOptions()

Dim frm As String
frm = "Main"

Dim SCFormB As Control
Dim SCSearchB As Control
Dim SCReportB As Control

Set SCFormB = CreateControl(frm, acOptionButton, , , , 0.5, 0.6, 1.5, 0.55)
Set SCSearchB = CreateControl(frm, acOptionButton, , , , 0.5, 1.5, 1.5, 0.55)
Set SCReportB = CreateControl(frm, acOptionButton, , , , 0.5, 2.4, 1.5, 0.55)


End Function

3 个答案:

答案 0 :(得分:3)

我最近遇到过这个问题。我正在创建一个新的Shares / Derivatives交易和管理应用程序,并且我在创建表单方面取得了很大的进步,但在某一时刻,我开始为所有_Click()处理程序获取此错误表格上的控件。但是,对于表单上的某个字段的_Enter()处理程序,它没有发生。任何“结束”之后都没有任何无关的文字。声明 - 完全!我发现,不知何故,不正确的LINE ENDINGS已经走到了“终点”的尽头。声明。

修复:结束你的每一个'结束'语句,点击DELETE直到下一个Sub语句出现在游标上(即,你现在在下一个程序的开始处与前一个proc的结束语句在同一行),然后点击ENTER以放入下一个Sub声明回到它自己的路线上。这将确保您在每个事件处理程序的末尾都有正确的CR / LF(或该编辑器/编译器所需的任何内容)。

答案 1 :(得分:1)

如果您查看Microsoft Office开发人员中心for this error message,则会收到以下说明:

  

您将可执行代码放在过程之外。任何非陈述性的   过程外的行必须以注释分隔符(')开头。   声明性语句必须出现在第一个过程之前   宣言。代码执行时忽略注释。

这意味着您可以在Sub或Function之外编写的代码类型是有限的。

答案 2 :(得分:1)

显然,您的模块中有额外的代码,这些代码位于函数或子函数之外。在VBA编辑器中选择debug - >编译,它应该突出显示您可以删除或修改的违规代码。

仅供参考:CreateControl使用缇(一个1440英寸)作为左,上,宽和高。您可能希望将您使用的数字乘以约1440。