文言文孙叔敖埋两头蛇:VB中提示实时错误‘91’光标卡在mrc.addnew上

来源:百度文库 编辑:高校问答 时间:2024/04/26 09:03:50
该窗体的原代码如下:

Private Sub Command1_Click()
Dim mrc As ADODB.Recordset
Dim MsgText As String
Dim txtSQL As String

If Not Testtxt(Text1.Text) Then
MsgBox "委托人姓名不能为空,请您填写!", vbOKOnly + vbExclamation, "警告"
Text1.SetFocus
End If
If Not Testtxt(Text2.Text) Then
MsgBox "被委托人姓名不能为空,请您填写!", vbOKOnly + vbExclamation, "警告"
Text2.SetFocus
End If
If Not Testtxt(Text3.Text) Then
MsgBox "委托事项不能为空,请您填写!", vbOKOnly + vbExclamation, "警告"
Text3.SetFocus
End If
If Text1.Text <> "" And Text2.Text <> "" And Text3.Text <> "" Then
txtSQL = "select * from 企业委托表"
Set mrc = ExecuteSQL(txtSQL, MsgText)

mrc.AddNew
mrc.Fields("委托人") = Trim(Text1.Text)
mrc.Fields("被委托人") = Trim(Text2.Text)
mrc.Fields("委托事项") = Trim(Text3.Text)
mrc.Update
mrc.Close

End If
'掉mrc.addnew后光标就下移了,还是同样的错误
我模块里面写的是:
Public Function ExecuteSQL(ByVal SQL _
As String, MsgString As String) _
As ADODB.Recordset
'executes SQL and returns Recordset
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sTokens() As String

On Error GoTo ExecuteSQL_Error

sTokens = Split(SQL)
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
'rst.MoveLast 'get RecordCount
Set ExecuteSQL = rst
MsgString = "查询到" & rst.RecordCount & _
" 条记录 "
End If
ExecuteSQL_Exit:
Set rst = Nothing
Set cnn = Nothing
Exit Function

ExecuteSQL_Error:
MsgString = "查询错误: " & _
Err.Description
Resume ExecuteSQL_Exit
End Function

Public Function Testtxt(txt As String) As Boolean
If Trim(txt) = "" Then
Testtxt = False
Else
Testtxt = True
End If
End Function
Public Function ConnectString() _
As String
'returns a DB ConnectString
ConnectString = "FileDSN=工商局.dsn;UID=sa;PWD="
End Function

请帮帮忙啊,谢谢了!!!