Private Sub Cmd_ok_Click() Dim Msgtext As String Dim SQLtext As String Dim strPwd As String Dim i As IntegerSet rst = New ADODB.RecordsetIf Trim(Txt_user.Text) = "" Or Trim(Txt_pwd.Text) = "" Then MsgBox "用户和密码,不能为空!", vbOKOnly + vbExclamation, "警告" Txt_user.Text = "" Txt_pwd.Text = "" Txt_user.SetFocus End IfSQLtext = "select * from t_user where user_name = '" & Trim(Txt_user.Text) & "'" Set rst = ExecuteSQL(SQLtext, Msgtext)For i to cint(Msgtext) if Not rst.EOF Then strPwd = md5(Trim(Txt_pwd.Text)) If Trim(rst.Fields(1)) = Trim(Txt_user.Text) And Trim(rst.Fields(2)) = Trim _(strPwd) Then rst.Close Me.Hide Frm_main.Show grp_user = Trim(Txt_user.Text) Else MsgBox "用户或者密码错误!", vbOKOnly + vbExclamation, "警告" Txt_user.Text = "" Txt_pwd.Text = "" Txt_user.SetFocus End If End If rst.rst.MoveNext next iEnd Sub Public Function ConnectString() _ As String 'returns a DB ConnectString ConnectString = "Server=(local);Database=fin;Uid=sa;Pwd=" End Function 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.Provider = "SQLOLEDB" 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 = CStr(rst.RecordCount) End If ExecuteSQL_Exit: Set rst = Nothing Set cnn = Nothing Exit Function
ExecuteSQL_Error: MsgString = "查询错误: " & _ err.Description Resume ExecuteSQL_Exit End Function
在VB中调用一下把参数传过去,根据返回值确定登录身份
非常希望得到你的答复!
Dim Msgtext As String
Dim SQLtext As String
Dim strPwd As String
Dim i As IntegerSet rst = New ADODB.RecordsetIf Trim(Txt_user.Text) = "" Or Trim(Txt_pwd.Text) = "" Then
MsgBox "用户和密码,不能为空!", vbOKOnly + vbExclamation, "警告"
Txt_user.Text = ""
Txt_pwd.Text = ""
Txt_user.SetFocus
End IfSQLtext = "select * from t_user where user_name = '" & Trim(Txt_user.Text) & "'"
Set rst = ExecuteSQL(SQLtext, Msgtext)For i to cint(Msgtext)
if Not rst.EOF Then
strPwd = md5(Trim(Txt_pwd.Text))
If Trim(rst.Fields(1)) = Trim(Txt_user.Text) And Trim(rst.Fields(2)) = Trim _(strPwd) Then
rst.Close
Me.Hide
Frm_main.Show
grp_user = Trim(Txt_user.Text)
Else
MsgBox "用户或者密码错误!", vbOKOnly + vbExclamation, "警告"
Txt_user.Text = ""
Txt_pwd.Text = ""
Txt_user.SetFocus
End If
End If
rst.rst.MoveNext
next iEnd Sub
Public Function ConnectString() _
As String
'returns a DB ConnectString
ConnectString = "Server=(local);Database=fin;Uid=sa;Pwd="
End Function
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.Provider = "SQLOLEDB"
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 = CStr(rst.RecordCount)
End If
ExecuteSQL_Exit:
Set rst = Nothing
Set cnn = Nothing
Exit Function
ExecuteSQL_Error:
MsgString = "查询错误: " & _
err.Description
Resume ExecuteSQL_Exit
End Function
grp_user 为全局变量 需要定义
数据库连接部分来自网上 呵呵
rst.rst.MoveNext 更正:rst.MoveNext
不好意思~~