vb实时错误‘91’对象变量或WITH 块变量未设置问题
运行的时候录入了正确的名和密码后,在Ifmrc.EOF=TrueThen处,出现“实时错误‘91’对象变量或WITH块变量未设置”OptionExplicitPublic...
运行的时候录入了正确的名和密码后,在If mrc.EOF = True Then处,出现“实时错误‘91’对象变量或WITH 块变量未设置”
Option Explicit
Public OK As Boolean
'记录确定次数
Dim miCount As Integer
Private Sub cmdCancel_Click()
OK = False
Me.Hide
End Sub
Private Sub cmdOK_Click()
Dim txtSQL As String
Dim mrc As ADODB.Recordset
Dim MsgText As String
'ToDo: create test for correct password
'check for correct password
UserName = ""
If Trim(txtUserName.Text = "") Then
MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"
txtUserName.SetFocus
Else
txtSQL = "select * from 管理员 where username = '" & txtUserName.Text & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
' MsgBox MsgText
If mrc.EOF = True Then
MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"
txtUserName.SetFocus
Else
If Trim(mrc.Fields(1)) = Trim(txtPassword.Text) Then
OK = True
mrc.Close
Me.Hide
UserName = Trim(txtUserName.Text)
Else
MsgBox "输入密码不正确,请重新输入!", vbOKOnly + vbExclamation, "警告"
txtPassword.SetFocus
txtPassword.Text = ""
End If
End If
End If
miCount = miCount + 1
If miCount = 3 Then
Me.Hide
End If
Exit Sub
End Sub 展开
Option Explicit
Public OK As Boolean
'记录确定次数
Dim miCount As Integer
Private Sub cmdCancel_Click()
OK = False
Me.Hide
End Sub
Private Sub cmdOK_Click()
Dim txtSQL As String
Dim mrc As ADODB.Recordset
Dim MsgText As String
'ToDo: create test for correct password
'check for correct password
UserName = ""
If Trim(txtUserName.Text = "") Then
MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"
txtUserName.SetFocus
Else
txtSQL = "select * from 管理员 where username = '" & txtUserName.Text & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
' MsgBox MsgText
If mrc.EOF = True Then
MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"
txtUserName.SetFocus
Else
If Trim(mrc.Fields(1)) = Trim(txtPassword.Text) Then
OK = True
mrc.Close
Me.Hide
UserName = Trim(txtUserName.Text)
Else
MsgBox "输入密码不正确,请重新输入!", vbOKOnly + vbExclamation, "警告"
txtPassword.SetFocus
txtPassword.Text = ""
End If
End If
End If
miCount = miCount + 1
If miCount = 3 Then
Me.Hide
End If
Exit Sub
End Sub 展开
展开全部
对象变量或 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 语句执行初始化。
块变量没有设置(错误 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 语句执行初始化。
推荐于2016-01-09 · 知道合伙人软件行家
关注
展开全部
对象变量或 With 块变量没有设置(错误 91)
创建对象变量有两个步骤。第一,必须先声明对象变量。然后必须用
Set 语句将一个正确的引用赋值给对象变量。同样地,With...End With 块必须先用
With 语句进入点来执行初始化。此错误有以下的原因和解决方法:
1.试图使用的对象变量,还没有用一个正确对象的引用来赋值。
给对象变量指定或再指定一个引用。例如,如果在下列的代码中省略 Set
语句的话,那么引用 MyObject 将会产生错误:
Dim MyObject As Object ' 创建对象变量。
Set MyObject = Sheets(1) ' 创建一个正确的对象引用。
MyCount = MyObject.Count ' 计数值赋给 MyCount。
2.试图用的对象变量已经被设为 Nothing。
Set MyObject = Nothing ' 释放此对象。
MyCount = MyObject.Count ' 引用了已释放的对象。
再指定引用给对象变量。例如,使用新的 Set
语句给对象设置新的引用。
3.此对象是正确的对象,但没有被设置,因为在对象库中,在
“引用” 对话框中没有被选取。
在 “添加引用” 对话框选择对象库。
4.在 With 块内GoTo 语句的去向。
不要跳进 With 块。确保块使用 With
语句进入点以执行初始化。
5.当选了 “设置下一条语句” 命令时,在 With 块内指定了一行。
With 块必须用 With
语句执行初始化。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这一句有问题,需要检查一下:Set mrc = ExecuteSQL(txtSQL, MsgText)
记录集未打开或已关闭或者没能正确传递出来
记录集未打开或已关闭或者没能正确传递出来
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Dim mrc As ADODB.Recordset
这句只是声明了这样的一个对象,没有为这个变量生成实体,没有分配内存空间
可以使用隐式声明
dim mrc as new adodb.recordset
或者显示声明
Dim mrc As ADODB.Record
Set mrc = New ADODB.Recordset
这句只是声明了这样的一个对象,没有为这个变量生成实体,没有分配内存空间
可以使用隐式声明
dim mrc as new adodb.recordset
或者显示声明
Dim mrc As ADODB.Record
Set mrc = New ADODB.Recordset
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询