vb中出现“对象变量或with块变量未设置”

PrivateSubForm_Activate()'设置操作员权限WithData1.RecordsetIf.BOF=FalseThen.MoveFirst.FindFi... Private Sub Form_Activate() '设置操作员权限
With Data1.Recordset
If .BOF = False Then .MoveFirst
.FindFirst "操作员 like" + Chr(34) + StatusBar1.Panels(3).Text + Chr(34) + ""
If .NoMatch Then
Else
'根据权限表qxsz中的各个字段的值设置菜单是否可用
main.zjyj.Enabled = .Fields("追加押金")
main.ZSDJ.Enabled = .Fields("住宿登记")
main.tf.Enabled = .Field("退宿登记")
main.tfdj.Enabled = .Fields("调房登记")
main.kfsz.Enabled = .Fields("客房管理")
main.kfcx.Enabled = .Fields("客房查询")
main.ftck.Enabled = .Fields("房态查看")
main.gzcx.Enabled = .Fields("挂账查询")
main.khjk.Enabled = .Fields("客户结款")
main.zscx.Enabled = .Fields("住宿查询")
main.tfcx.Enabled = .Fields("退宿查询")
main.sftx.Enabled = .Fields("宿费提醒")
main.ysbb.Enabled = .Fields("登记预收报表")
main.xsbb.Enabled = .Fields("客房销售报表")
main.xstj.Enabled = .Fields("客房销售统计报表")
main.czysz.Enabled = .Fields("操作员设置")
main.ma.Enabled = .Fields("密码设置")
main.csh.Enabled = .Fields("初始化")
main.qxsz.Enabled = .Fields("权限设置")
End If
End With
End Sub

恳请高手解答!
点调试以后光标停在If .BOF = False Then处
展开
 我来答
heizhenpeng
推荐于2016-07-23 · TA获得超过899个赞
知道小有建树答主
回答量:955
采纳率:0%
帮助的人:1143万
展开全部
请检查data1.recordset是否不存在,是否未打开,是否未执行查询。

——————————————————————————————
你好,我发现原因了,你的form_active事件里没有对data1.datasource赋值,就直接使用了recordset,这样的话,recordset里是不会有值的,我加入了Data1.RecordSource = "select * from 操作员 like" + Chr(34) + StatusBar1.Panels(3).Text + Chr(34) + ""和Data1.Refresh两句话,就可以了,但是我不了解你所要查询的表名,因此在取field时又抛出了错误,这个select查询就需要你去完成了,而且我不建议在form_active事件里写这些,因为form_active事件是在每次这个窗体处于活动时都会触发,这样的 话,查询就会进行多次,会影响效率,我建议将此代码移至form_load里,但如果你有“不关闭主窗体就更换操作员进行登录“的话,可以在此窗体里加入一个公开方法,将代码写入方法中,在form_load时进行调用,当更换操作员时,也调用一下这个方法,这样的话,就可以达到你“不同操作员的权限不同”的需求了。
创作者lJPRXUd5YJ
2020-04-08 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:32%
帮助的人:937万
展开全部
在使用
mrc
前加一句
Set
mrc
=
New
ADODB.Recordset
如还有问题,请检查打开数据库是否成功
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aciom
2010-05-27 · TA获得超过385个赞
知道小有建树答主
回答量:246
采纳率:0%
帮助的人:208万
展开全部
就是变量没有定义啊,或者有的变量没有设置新的实例(New) ,仔细检查一下
with 什么?
找一下哪个对象在你的程序里有没有,比如with adodc1.recordset
你就要找一下有没有adodc1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ppfkue
2010-05-27 · TA获得超过210个赞
知道小有建树答主
回答量:184
采纳率:100%
帮助的人:226万
展开全部
with 好像没你这种用法吧,还是写完整吧。
If Data1.Recordset.BOF then
。。。
。。
end if
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
创作者cxDSIL0h9H
2019-12-03 · TA获得超过4139个赞
知道大有可为答主
回答量:3224
采纳率:34%
帮助的人:228万
展开全部
定义过rs吗?如果定义过是否引用了adodb
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式