
vb高手请进(10点之前在线等)
OptionExplicitPrivateSub进入_Click()DimtxtsqlAsStringDimmrcAsADODB.RecordsetDimmsgtextA...
Option Explicit
Private Sub 进入_Click()
Dim txtsql As String
Dim mrc As ADODB.Recordset
Dim msgtext As String
If username.Text = "" Then
MsgBox "请输入用户名"
username.SetFocus
Else
txtsql = "select * from user_info where user_id='" & username.Text & " '"
Set mrc = executesql(txtsql, msgtext)
If mrc.EOF Then
MsgBox "没有这个用户"
username.SetFocus
Else
If Trim(mrc.Fields("user_pwd")) = Trim(username.Text) Then
username_ok = Trim(Text2.Text)
Unload Me
Form2.Show
Else
MsgBox "输入密码不对!请重输"
Text2.SetFocus
End If
End If
End If
End Sub
实时错误'91'
对象变量或with块变量为设置
If mrc.EOF Then
这一行为黄色字体 展开
Private Sub 进入_Click()
Dim txtsql As String
Dim mrc As ADODB.Recordset
Dim msgtext As String
If username.Text = "" Then
MsgBox "请输入用户名"
username.SetFocus
Else
txtsql = "select * from user_info where user_id='" & username.Text & " '"
Set mrc = executesql(txtsql, msgtext)
If mrc.EOF Then
MsgBox "没有这个用户"
username.SetFocus
Else
If Trim(mrc.Fields("user_pwd")) = Trim(username.Text) Then
username_ok = Trim(Text2.Text)
Unload Me
Form2.Show
Else
MsgBox "输入密码不对!请重输"
Text2.SetFocus
End If
End If
End If
End Sub
实时错误'91'
对象变量或with块变量为设置
If mrc.EOF Then
这一行为黄色字体 展开
5个回答
展开全部
对象变量或 With 块变量没有设置(错误 91)
创建对象变量有两个步骤。第一,必须先声明对象变量。然后必须用 Set 语句将一个正确的引用赋值给对象变量。同样地,With...End With 块必须先用 With 语句进入点来执行初始化。此错误有以下的原因和解决方法:
试图使用的对象变量,还没有用一个正确对象的引用来赋值。
给对象变量指定或再指定一个引用。例如,如果在下列的代码中省略 Set 语句的话,那么引用 MyObject 将会产生错误:
Dim MyObject As Object ' 创建对象变量。
Set MyObject = Sheets(1) ' 创建一个正确的对象引用。
MyCount = MyObject.Count ' 计数值赋给 MyCount。
试图用的对象变量已经被设为 Nothing。
Set MyObject = Nothing ' 释放此对象。
MyCount = MyObject.Count ' 引用了已释放的对象。
再指定引用给对象变量。例如,使用新的 Set 语句给对象设置新的引用。
此对象是正确的对象,但没有被设置,因为在对象库中,在 “引用” 对话框中没有被选取。
在 “添加引用” 对话框选择对象库。
在 With 块内GoTo 语句的去向。
不要跳进 With 块。确保块使用 With 语句进入点以执行初始化。
当选了 “设置下一条语句” 命令时,在 With 块内指定了一行。
With 块必须用 With 语句执行初始化。
==========================================
你的错误应该是:你定义了一个数据库链接(或者链接对象,或者控件)但是没有对这个链接初始化(如set conn=createobject("adodb.connection"))或者赋值,导致该对象为空,所以当你使用这个对象的时候就会出问题。
一个窗口是无法直接使用另一个窗口上的ado控件的,需要引用的时候必须带上窗体名字,比如在form2中使用form1里的data1控件,就必须使用:
form1.Data1.<属性、方法>
这样的格式才是正确的,如果form1中的data1没有初始化或者这个窗口没有打开,则报错
创建对象变量有两个步骤。第一,必须先声明对象变量。然后必须用 Set 语句将一个正确的引用赋值给对象变量。同样地,With...End With 块必须先用 With 语句进入点来执行初始化。此错误有以下的原因和解决方法:
试图使用的对象变量,还没有用一个正确对象的引用来赋值。
给对象变量指定或再指定一个引用。例如,如果在下列的代码中省略 Set 语句的话,那么引用 MyObject 将会产生错误:
Dim MyObject As Object ' 创建对象变量。
Set MyObject = Sheets(1) ' 创建一个正确的对象引用。
MyCount = MyObject.Count ' 计数值赋给 MyCount。
试图用的对象变量已经被设为 Nothing。
Set MyObject = Nothing ' 释放此对象。
MyCount = MyObject.Count ' 引用了已释放的对象。
再指定引用给对象变量。例如,使用新的 Set 语句给对象设置新的引用。
此对象是正确的对象,但没有被设置,因为在对象库中,在 “引用” 对话框中没有被选取。
在 “添加引用” 对话框选择对象库。
在 With 块内GoTo 语句的去向。
不要跳进 With 块。确保块使用 With 语句进入点以执行初始化。
当选了 “设置下一条语句” 命令时,在 With 块内指定了一行。
With 块必须用 With 语句执行初始化。
==========================================
你的错误应该是:你定义了一个数据库链接(或者链接对象,或者控件)但是没有对这个链接初始化(如set conn=createobject("adodb.connection"))或者赋值,导致该对象为空,所以当你使用这个对象的时候就会出问题。
一个窗口是无法直接使用另一个窗口上的ado控件的,需要引用的时候必须带上窗体名字,比如在form2中使用form1里的data1控件,就必须使用:
form1.Data1.<属性、方法>
这样的格式才是正确的,如果form1中的data1没有初始化或者这个窗口没有打开,则报错
参考资料: http://bjgangguan.com/shengchanguige.html
展开全部
你可以试试:(在你原来的基础上改的)
Option Explicit
Private Sub 进入_Click()
Dim txtsql As String
Dim mrc As ADODB.Recordset
Dim msgtext As String
If username.Text = "" Then
MsgBox "请输入用户名"
username.SetFocus
Else
txtsql = "select * from user_info where user_id='" & username.Text & " 'and '" & user_pwd & "'"
Set mrc = executesql(txtsql, msgtext)
If mrc.EOF=true Then
MsgBox "用户名或密码有误,请重新输入!", vbOKOnly + vbExclamation, "提示"
else
user_id = mrc.Fields("user_id")
Form2.Show
Unload Me
End If
End If
End Sub
看看~!
恩~!CdPzh说的没错
Dim mrc As ADODB.Recordset改为
Dim mrc As New ADODB.Recordset试试.
Option Explicit
Private Sub 进入_Click()
Dim txtsql As String
Dim mrc As ADODB.Recordset
Dim msgtext As String
If username.Text = "" Then
MsgBox "请输入用户名"
username.SetFocus
Else
txtsql = "select * from user_info where user_id='" & username.Text & " 'and '" & user_pwd & "'"
Set mrc = executesql(txtsql, msgtext)
If mrc.EOF=true Then
MsgBox "用户名或密码有误,请重新输入!", vbOKOnly + vbExclamation, "提示"
else
user_id = mrc.Fields("user_id")
Form2.Show
Unload Me
End If
End If
End Sub
看看~!
恩~!CdPzh说的没错
Dim mrc As ADODB.Recordset改为
Dim mrc As New ADODB.Recordset试试.
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1。username_ok没有定义,你前边用了Option Explicit
2。一般
Unload Me
Form2.Show
这两句话顺序要换下
3.也有可能是过程提前结束,但条件语句没有结束,不防在此增加个判断变量。
不知道有否帮助
2。一般
Unload Me
Form2.Show
这两句话顺序要换下
3.也有可能是过程提前结束,但条件语句没有结束,不防在此增加个判断变量。
不知道有否帮助
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Dim mrc As ADODB.Recordset有问题,改为
Dim mrc As New ADODB.Recordset试试.
Dim mrc As New ADODB.Recordset试试.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
问题出在哪一行,只看代码很难的.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询