关于VB的调试

来源:百度知道 编辑:UC知道 时间:2024/05/25 11:05:17
我做系统的时候有好几个窗体都出现“对象变量或With块变量未设置的错误!”或“对象关闭时,不允许操作”,调试的时候都是在“(Not mrc.EOF)”这一句这里,虽然网上有很多答案,可是还是不怎么理解,也试着去解决,可是还是不行,请各位高手帮帮忙!
代码如下:
Private Sub Command1_Click()
Dim txtSQL As String
Dim mrc As New ADODB.Recordset
Dim MsgText As String
'判断输入用户名是否为空]
If Trim(Text1.Text = "") Then
MsgBox "请输入用户名!", vbOKOnly + vbExclamation, "警告"
Text1.SetFocus
Exit Sub
Else
txtSQL = "select * from User_info"
Set mrc = ExecuteSQL(txtSQL, MsgText)
'判断数据集是否为空
While (Not mrc.EOF)
If Trim(mrc.Fields(0)) = Trim(Text1.Text) Then
MsgBox "用户名不存在,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"
Text1.SetFocus
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
mrc.Close
Exit Sub
Else
mrc.MoveNext
End If
Wend
End If
'判断两次输入密码是否一致
If Trim(Text2.Text)

补充:
虽然定义了connectstring函数,但是没有调用connectstring,而且connectstring函数仅仅是一个连接字符串,没有真正的数据库连接语句;
记录集的连接没有!
关键语句:
Dim conn As New ADODB.Connand
Dim mrc As New ADODB.Recordset
conn.ConnectionTimeout = 10
conn.CursorLocation = adUseServer
conn.ConnectionString = "driver={SQL Server};server=服务器名称;uid=sa;pwd=密码;database=数据源名称"
conn.Open '连接数据库
strSQL = "select * from User_info"
mrc.Open strSQL, conn, 3, 3 '连接数据表
以上是SQL数据库连接语句。

1、Dim mrc As New ADODB.Recordset 定义了记录集对象,但是没有定义数据库链接对象,例如:Dim conn As New ADODB.Connand
2、没有数据库链接语句,同样没有记录集链接语句
3、数据库链接对象和记录集链接对象定义必须在程序的开始部分,也就是必须定义为全局对象。不能定义在某个过程中。
4、在程序的引用中是否已经引用了ADODB?
5、Else '添加新用户
mrc.AddNew
记录集已经卸载,不可能更新和添加记录!

你的程序中没有定义数据库吧。只定义了一个sql和一个rs

对象变量或With块变量未设置的错误!” ——这句的意思一般是有变量你没有声明

对象关闭时,不允许操作——由于你的程序里是连接数据库,当数据库或者记录集没有打开时,提示的是这句话。因此你必须先打开对象。