VB6.0出现状况:对象变量或with块变量未设置。 请问怎么解决??

PrivateSubcmd_ok_click()Adodc1.Recordset.Find"用户名='"&Text1.Text&"'"IfAdodc1.Recordset... Private Sub cmd_ok_click()
Adodc1.Recordset.Find "用户名='" & Text1.Text & "'"
If Adodc1.Recordset.EOF Then
MsgBox "用户名不存在", vbOKOnly, "提示"
ElseIf (Adodc1.Recordset.Fields("口令") <> Text2.Text) Then
MsgBox "密码不正确", , "提示"
numlogin = numlogin + 1
Else
MsgBox "登录成功", , "提示"

username = Text1.Text
Unload Me
menu.Show
End If

End Sub
VB6.0出现状况:对象变量或with块变量未设置。
请问怎么解决??
展开
 我来答
ireray5
2011-12-24 · TA获得超过396个赞
知道小有建树答主
回答量:557
采纳率:0%
帮助的人:400万
展开全部
应该是这行(Adodc1.Recordset.Find "用户名='" & Text1.Text & "'")会出问题吧。
看代码,这行以下的代码应该都是没有问题的。
所以,要检查Adodc1.Recordset对象是否已经打开。
如果确定已经打开,则可在
Adodc1.Recordset.Find "用户名='" & Text1.Text & "'"
前加上Adodc1.Recordset.movefirst试试。
请参考以下文档。
---------------------------------------------------------------------------------------
Find 方法
在 Recordset 中搜索满足指定条件的行。可选择指定搜索方向、起始行和从起始行的偏移量。如果满足条件,当前行的位置将设置在找到的记录上;否则将把当前行位置设置为 Recordset 的结尾(或开始)处。

语法
Find (Criteria, SkipRows, SearchDirection, Start)
参数
Criteria
String 值,包含指定用于搜索的列名、比较操作符和值的语句。
SkipRows
可选。Long 值,其默认值为零,它指定当前行或 Start 书签的行偏移量以开始搜索。在默认情况下,搜索将从当前行开始。
SearchDirection
可选。SearchDirectionEnum 值,指定搜索应从当前行开始,还是从搜索方向的下一个有效行开始。如果该值为 adSearchForward,不成功的搜索将在 Recordset 的结尾处停止。如果该值为 adSearchBackward,不成功的搜索将在 Recordset 的开始处停止。
Start
可选。Variant 书签,用于标记搜索的开始位置。
说明
在 criteria 中只能指定单列名称。此方法不支持多列搜索。

Criteria 中的比较操作符可以是“>”(大于)、“<”(小于)、“=”(等于)、“>=”(大于或等于)、“<=”(小于或等于)、“<>”(不等于)或“like”(模式匹配)。

Criteria 中的值可以是字符串、浮点数或者日期。字符串值用单引号或“#”标记(数字号)分隔(如“state = 'WA'”或“state = #WA#”)。日期值用“#”标记(数字号)分隔(如“start_date > #7/22/97#”)并可包括小时、分钟和秒以指示时间戳,但不能包括毫秒,否则将出现错误。

如果比较操作符为“like”,可以在字符串值中包含星号 (*) 以查找一次或多次出现的任意字符或子字符串。例如,“state like 'M*'”与 Maine 和 Massachusetts 匹配。您还可以使用前导和后续星号以查找包含在值内的子字符串。例如,“state like '*as*'”与 Alaska、Arkansas 和 Massachusetts 匹配。

星号可以只在条件字符串的结尾使用,也可以在条件字符串的开头和结尾一起使用,如上所示。不能将星号作为前导通配符 ('*str') 或嵌入通配符 ('s*r') 使用。这将引发错误。

注意 如果在调用 Find 前未设置当前行的位置,将发生错误。设置行位置的任何方法(如 MoveFirst)都应在调用 Find 之前调用。
注意 如果调用记录集的 Find 方法,并且记录集的当前位置在最后一个记录上或文件结尾 (EOF),则不能找到任何结果。您需要调用 MoveFirst 方法以将当前位置/游标设置到记录集的开始处。
华仔成教
2011-12-23 · TA获得超过888个赞
知道小有建树答主
回答量:808
采纳率:100%
帮助的人:794万
展开全部
给对象起名字不能和vb6的关键字、函数等冲突

将 menu 另改名
更多追问追答
追问
不是menu的问题,您还能看出什么问题吗?
追答
若不是,如果你所有“.”前的对象都在的话,我看不出来了,你按下f8键调试一下,看哪一行错
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户86768
2011-12-24
知道答主
回答量:11
采纳率:0%
帮助的人:7.5万
展开全部
加断点一点一点找。不是这个函数的问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式