使用快速开发平台对ACCESS的开发习练非常有益,对初入门者能够起到很大的帮助,本人也刚刚开始学习使用,感觉这个东东虽然开发功能还比较有限,但已经非常不错了。最近在学习使用中发现开发平台在创建窗体的命名中碰到了点小问题。
比如笔者最初利用开发平台创建了三个窗体,分别被命名为:frmZL_sjjl 、frmZL_sjjl_Edit 、frmZL_sjjl_List ,保存。第二次又利用平台创建了与前者类似的窗体(为了比较学习其中的细微改动的差别),为了不覆盖前面命名的窗体,笔者第二次在创建时将几个窗体的命名都加上后缀:“_1”,这样就得到了三个新命名的窗体:frmZL_sjjl_1 、frmZL_sjjl_Edit_1 、frmZL_sjjl_List_1 。
但当笔者打开第二次的窗体frmZL_sjjl_1运行,并双击数据列表区编辑已有记录时,系统则报错:
“frmZL_sjjl_1: Sub btnEdit_Click()
窗体名称“frmZL_sjjl_1_Edit”拼写有误或引用了一个不存在的窗体。”
看来开发平台内部并没有使用笔者修改后的 frmZL_sjjl_Edit_1 ,而是默认生成了窗体名称 frmZL_sjjl_1_Edit ,从而导致系统出错。
经过仔细查看 frmZL_sjjl_1 的 “编辑” 按钮控件的单击事件中的过程代码,其命名规则为: Me.Name & "_Edit" ,按照这一规则修改第二次创建的窗体名称,重新分别命名:frmZL_sjjl_1 、frmZL_sjjl_1_Edit 、frmZL_sjjl_1_List。再测试通过。
Public Sub btnEdit_Click()
On Error GoTo ErrorHandler
If Me.sfrList.Form.CurrentRecord < 1 Then
Exit Sub
End If
Me.sfrList.SetFocus
RunCommand acCmdSelectRecord
DoCmd.OpenForm FormName:=Me.Name & "_Edit", _
DataMode:=IIf(Me.btnEdit.Enabled, acFormEdit, acFormReadOnly), _
OpenArgs:=Me.sfrList![ID]
ExitHere:
Exit Sub
ErrorHandler:
Select Case Err.Number
Case errOpenActionWasCanceled, errOperationCanceledByUser
Case Else
RDPErrorHandler Me.Name & ": Sub btnEdit_Click()"
End Select
Resume ExitHere
End Sub