我正在尝试在Access VBA中的一行上放置一个子。 是否有可用于实现此目的的设置或特殊语法?
private sub cmd_print() docmd.printout end sub 'creates an error
VS
private sub cmd_print()
docmd.printout
end sub
答案 0 :(得分:9)
技术上,是的,使用指令分隔符 - 冒号:
令牌:
Private Sub PrintCommand() : DoCmd.PrintOut : End Sub
我会强烈建议反对它,因为显而易见的可维护性和可读性原因。
对于某些生成的代码,某些加载项(如vbWatchDog)使用此特定布局。 由于它如何挑战模块的预期结构,它是known to cause problems with add-ins that process the code, such as Rubberduck(我很大程度上参与其中)(解析器从那时起已经更新;这不再是问题) - 那是因为成员属性将被存储(您需要导出模块才能看到它们,VBE不会显示模块和成员属性),而是反...直觉上,在之外的程序范围:
Private Sub PrintCommand() : DoCmd.PrintOut : End Sub
Attribute PrintCommand.VB_Description = "This procedure does XYZ"
"正常"布局看起来像这样,并没有引起问题:
Private Sub PrintCommand()
Attribute PrintCommand.VB_Description = "This procedure does XYZ"
DoCmd.PrintOut
End Sub
它也更容易阅读。