Private Sub cmdOk_Click()UserName = "sa"If Trim(txtUserName.Text = "") ThenMsgBox "沒有這個用戶,請重新輸入用戶名!", vbOKOnly + vbExclamation, "警告"txtUserName.SetFocusElsesql = "select * from userpwd where U_name = " & "'" & txtUserName.Text & "'"Set rs = ExecuteSQL(sql, msgtxt)If rs.EOF = True Then (這里出了問題)MsgBox "沒有這個用戶,請重新輸入用戶名!", vbOKOnly + vbExclamation, "警告"txtUserName.SetFocusElseIf Trim(rs.Fields(1)) = Trim(txtPassword.Text) ThenOK = TrueUserName = Trim(txtUserName.Text)UserPass = Trim(txtPassword.Text)rs.CloseMe.HideElseMsgBox "輸入密碼不正確,請重新輸入!", vbOKOnly + vbExclamation, "警告"txtPassword.SetFocustxtPassword.Text = ""End IfEnd IfEnd IfExecuteSQL函數Public Function ExecuteSQL(ByVal sql _As String, MsgString As String) _As ADODB.Recordset'executes SQL and returns RecordsetDim cnn As ADODB.ConnectionDim rst As ADODB.RecordsetDim sTokens() As StringOn Error GoTo ExecuteSQL_ErrorsTokens = Split(sql)Set cnn = New ADODB.Connectioncnn.Open ConnectStringIf InStr("INSERT,DELETE,UPDATE,EXECUTE", _UCase$(sTokens(0))) Thencnn.Execute (sql)MsgString = sTokens(0) & _" query successful"ElseSet rst = New ADODB.Recordsetrst.Open Trim$(sql), cnn, _adOpenKeyset, _adLockOptimistic'rst.MoveLast 'get RecordCountSet ExecuteSQL = rstMsgString = "查詢到" & rst.RecordCount & _" 條記錄 "End IfExecuteSQL_Exit:Set rst = NothingSet cnn = NothingExit FunctionExecuteSQL_Error:MsgString = "查詢錯誤: " & _Err.DescriptionResume ExecuteSQL_ExitEnd Function我也不會調試。據說是VB If mrc.EOF = True Then 實時錯誤 91 據說ExecuteSQL函數出問題,可以幫我改下么。謝謝你,很急~
2 回答

慕桂英4014372
TA貢獻1871條經驗 獲得超13個贊
將出問題的地方按下面修改:
If rs.RecordCount = 0 Then
MsgBox "沒有這個用戶,請重新輸入用戶名
rs.EOF是記錄集的結束標記

忽然笑
TA貢獻1806條經驗 獲得超5個贊
Dim w_s As String, w_d As String, sp() As String
Function cc()
Dim i As Integer
w_s = "a,b,c,d,e,f,g,h"
sp = Split(w_s, ",", -1)
For i = LBound(sp) To UBound(sp)
MsgBox sp(i)
Next
End Function
Private Sub Command1_Click()
Call cc
End Sub
添加回答
舉報
0/150
提交
取消