出现该错误的程序 提示:实时'91'错误 未设置对象变量或With block变量问题
Private Sub cmdCancel_Click()
Unload Me
End SubPrivate Sub cmdOK_Click()
Dim txtSQL, MsgText As String
Dim mrc As ADODB.Recordset
If Trim(Text1(1).Text) <> Trim(Text1(2).Text) Then
MsgBox "密码输入不正确!", vbOKOnly + vbExclamation, "警告"
Text1(1).SetFocus
Text1(1).Text = ""
Else
txtSQL = "select * from user_Info where user_ID = '" & UserName & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
mrc.Fields(1) = Text1(1).Text
mrc.Update
mrc.Close
MsgBox "密码修改成功!", vbOKOnly + vbExclamation, "修改密码"
Me.Hide
End If
End SubPrivate Sub Form_Load()End Sub问题很急 是修改密码的界面 ,很有可能是与数据库连接的问题
请高手门指点 非常感激 我的qq154259482
Private Sub cmdCancel_Click()
Unload Me
End SubPrivate Sub cmdOK_Click()
Dim txtSQL, MsgText As String
Dim mrc As ADODB.Recordset
If Trim(Text1(1).Text) <> Trim(Text1(2).Text) Then
MsgBox "密码输入不正确!", vbOKOnly + vbExclamation, "警告"
Text1(1).SetFocus
Text1(1).Text = ""
Else
txtSQL = "select * from user_Info where user_ID = '" & UserName & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
mrc.Fields(1) = Text1(1).Text
mrc.Update
mrc.Close
MsgBox "密码修改成功!", vbOKOnly + vbExclamation, "修改密码"
Me.Hide
End If
End SubPrivate Sub Form_Load()End Sub问题很急 是修改密码的界面 ,很有可能是与数据库连接的问题
请高手门指点 非常感激 我的qq154259482
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 CONN
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
Set rst = Nothing
_______________________________________________________________
VB 中对对象赋值均是引用的,而不是对象的复制.所以:Set ExecuteSQL = rst这句是将函数返回指向rst,(此时ExecuteSQL和rst指向同一内存区域)而你上面退出前将rst给Set nothing了,当然ExecuteSQL也变成了nothing,故会出现"未设置对象变量或With block变量问题"所以泥浆上面Set rst = Nothing屏蔽掉应该就可以了.
请把 ExecuteSQL 函数中的错误陷阱语句去掉(就是把On Error GoTo ExecuteSQL_Error这句注释掉再运行),调试运行,才能找出正正的错误原因