原因:
你用到了Data1的动态记录集对象Recordset,即Data1.Recordset,而在你的这个过程中你没有设置Data1.DatabaseName = App.Path & "\db1.mdb" ,并没有初始化Data控件的动态记录集对象,也就是说这个时候动态记录集都还不存在,又哪来Data1.Recordset.EOF呢?是不是? 所以你应该在设计中将Data1控件的RecordSource属性设置好(选定数据库文件中的一个表名也可以),不过,如果你在设计时没有指定Data1控件的DatabaseName属性,只是在窗体装载过程中用代码Data1.DatabaseName = App.Path & "\db1.mdb" 来指定数据库名,那么你就得在代码中设置Data1.RecordSource属性,这样你可能就不会发现有错了,下面是我修改过的代码:
Private Sub MDIForm_Activate()
'设置操作员权限
Data1.DatabaseName = App.Path & "\kfgl.mdb"
Data1.RecordSource = "select * from qxsz"
Data1.Refresh
With Data1.Recordset
If .BOF = True Then .MoveFirst
.FindFirst "操作员 like " + Chr(34) + Chr(34) + ""
If .NoMatch Then
Else
frmmain.kfyd.Enabled = .Fields("客房预订")
frmmain.zjyj.Enabled = .Fields("追加押金")
frmmain.ZSDJ.Enabled = .Fields("住宿登记")
frmmain.tsjz.Enabled = .Fields("退宿结账")
frmmain.tfdj.Enabled = .Fields("调房登记")
frmmain.kfsz.Enabled = .Fields("客房设置")
frmmain.kfcx.Enabled = .Fields("客房查询")
frmmain.ftck.Enabled = .Fields("房态查看")
frmmain.zscx.Enabled = .Fields("住宿查询")
frmmain.tscx.Enabled = .Fields("退宿查询")
frmmain.sftx.Enabled = .Fields("宿费提醒")
frmmain.xstj.Enabled = .Fields("客房销售统计")
frmmain.czysz.Enabled = .Fields("操作员设置")
frmmain.mmsz.Enabled = .Fields("密码设置")
frmmain.csh.Enabled = .Fields("初始化")
frmmain.qxsz.Enabled = .Fields("权限设置")
End If
End With
End Sub
调试通过!!!