喜羊羊飞马奇遇记:VB中对用户进行添加时总出现错误

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/27 14:35:48
这是代码,运行后出现下面的提示框
Microsoft Visual Basic
---------------------------
编译错误:

子程序或函数未定义
---------------------------
确定 帮助
---------------------------
请高手指点,实在找不出哪里不对了

Private Sub cmdOK_Click()
Dim txtSQL As String
If Text1(0) = "" Then
MsgBox "用户名称不能为空!", vbOKOnly, "提示"
Text1(0).SetFocus
Exit Sub
End If
If Text1(1) = "" Then
MsgBox "用户密码不能为空!", vbOKOnly, "提示"
Text1(1).SetFocus
Exit Sub
Else
If Text1(1) <> Text1(2) Then
MsgBox "两次密码输入不同!", vbOKOnly, "提示"
Text1(1) = ""
Text1(2) = ""
Text1(1).SetFocus
Exit Sub
End If
End If
txtSQL = "select * from admin where name='" & Trim(Text1(0)) & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
If mrc.EOF = False Then
MsgBox "此用户名已经存在!", vbOKOnly, "警告"
Text1(0).SetFocus
Exit Sub
End If
txtSQL = "select * from admin"
Set mrc = ExecuteSQL(txtSQL, MsgText)
mrc.Close
mrc.AddNew
mrc.Fields(0) = Trim(Text1(0))
mrc.Fields(1) = Trim(Text1(1))
mrc.Fields(2) = Now
mrc.Update
mrc.Close
For i = 0 To 2
Text1(i) = ""
Next i
MsgBox "用户信息添加成功!", vbOKOnly, "提示"
Listapp
End Sub

新建立个模块。把下面代码拷贝到模块中就可以了。你ExecuteSQL没有定义

'传递参数SQL传递查询语句,MsgString传递查询信息。自身以一个数据集对象的形式返回
Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset
Dim Cnn As ADODB.Connection '定义连接
Dim Rst As ADODB.Recordset
Dim sTokens() As String '定义字符串

On Error GoTo ExecuteSQL_Error '异常处理

sTokens = Split(SQL) '用Split函数产生一个包含各个子串的数组

Set Cnn = New ADODB.Connection '创建连接
Cnn.Open ConnectString

If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then '判断字符串中是否含有指定内容
Cnn.Execute SQL '执行查询语句
MsgString = sTokens(0) & "query successful" '返回查询信息
Else
Set Rst = New ADODB.Recordset '闯将数据集对象
Rst.Open Trim$(SQL), Cnn, adOpenKeyset, adLockOptimistic '返回查询结果
Set ExecuteSQL = Rst '返回记录集对象
MsgString = "查询到" & Rst.RecordCount & " 条记录"
End If

ExecuteSQL_Exit:

Set Rst = Nothing '清空数据集对象
Set Cnn = Nothing '中断连接
Exit Function

ExecuteSQL_Error: '判断错误类型

MsgString = "查询错误:" & Err.Description
MsgBox MsgString
Resume ExecuteSQL_Exit

End Function

txtSQL = "select * from admin where name='" & Trim(Text1(0)) & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
这个多余
VB里面有ADODB控件,用哪个连接SQL比较好
where name='" & Trim(Text1(0)) & "'"
可以用 adodb1.database=text1.text连接
在“VB编程乐园”有很多

是哪一行出的错误提示
ExecuteSQL(txtSQL, MsgText)
这个函数在哪?