Private Sub Command1_Click() Adodc1.UserName = txtUserName Adodc1.Password = txtPwd
Adodc1.Refresh End Sub
楼上兄弟我还是不太明白,这里有用ADO做验证的资料,你帮我改成用ADO控件做的好吗?Public adoCon As ADODB.Connection '创建ADO连接数据库对象 Public adoRs As ADODB.Recordset '创建ADO记录集对象 Public adoCmd As ADODB.Command '创建ADO命令对象 Public adoPara As ADODB.Parameter '创建ADO参数对象 Public procon As StringPublic Sub connectDB() Set adoCon = New ADODB.Connection With adoCon .Provider = "SQLOLEDB" .ConnectionString = "Server=luoyi;Uid=sa;Pwd=sa;Database=mydb" .Open End With End SubPrivate Sub cmdOK_Click() '运行时自动检测错误,检测到则到ErrMsg标号处做相应的处理On Error GoTo ErrMsg Dim SQL As String '定义一个保存SQL语句的变量 '到Login表中查询是否有符合条件的记录存在 '使用的是Select count(*)from..返回值是一个大于等于0的整数 SQL = "" SQL = "Select Count(*) From Login Where Name='" & Trim(txtname.Text) & "'" SQL = SQL & " And Password='" & Trim(txtpassword.Text) & "'"Set adoRs = adoCon.Execute(SQL) If adoRs(0) = 0 Then MsgBox "您输入的用户名或密码有误,请更正!", vbOKOnly + vbExclamation, "系统提示" txtname.SetFocus Exit Sub End IfUnload Me '通过身份验证后卸载登录窗体 frmsystem.Show '显示系统界面,可以进入系统操作
不要将用户名和密码同时作为条件来查询。否则登录者可以通过一些技巧穿过你的验证。Private Sub cmdOK_Click() '运行时自动检测错误,检测到则到ErrMsg标号处做相应的处理On Error GoTo ErrMsg Dim SQL As String '定义一个保存SQL语句的变量 '到Login表中查询是否有符合条件的记录存在 '使用的是Select count(*)from..返回值是一个大于等于0的整数 SQL = "" SQL = "Select * From Login Where Name='" & Trim(txtname.Text) & "'"Set adoRs = adoCon.Execute(SQL) If adoRs.EOF Then If MsgBox("您输入的用户名有误,请更正!", vbOKCancel + vbExclamation, "系统提示") = vbOk Then txtname.SetFocus Exit Sub Else Unload me End End If End If IF adoRs!Password <> Trim(txtpassword.Text) Then If MsgBox("您输入的密码有误,请更正!", vbOKOnly + vbExclamation, "系统提示"") = vbOk Then txtname.SetFocus Exit Sub Else Unload me End End If txtname.SetFocus Exit Sub End IfUnload Me '通过身份验证后卸载登录窗体 frmsystem.Show '显示系统界面,可以进入系统操作
允许取消。给用户留一条退路。 另,最好设一个密码错误计数器变量,到达允许重试上限后退出。防止恶意猜测密码。 If MsgBox("您输入的密码有误,请更正!", vbOKCancel + vbExclamation, "系统提示"") = vbOk Then
sql="select * from login where 用户名='" & txtname.Text & "'" if adors.recordCount =0 then msgbox "无此用户" elseif txtpassword.Text <> adors("password") then msgbox "您输入的密码有误,请更正!" else Unload Me '通过身份验证后卸载登录窗体 frmsystem.Show '显示系统界面,可以进入系统操作
dim sql as string sql="select * from rs_login where rs_name='" & Trim(Text1.Text) & " and rs_pwd='" & Trim(Text2.Text) & "'" Adodc1.RecordSource = sql If Adodc1.Recordset.RecordCount > 0 Then ..... else .... end if
Adodc1.UserName = txtUserName
Adodc1.Password = txtPwd
Adodc1.Refresh
End Sub
Public adoRs As ADODB.Recordset '创建ADO记录集对象
Public adoCmd As ADODB.Command '创建ADO命令对象
Public adoPara As ADODB.Parameter '创建ADO参数对象
Public procon As StringPublic Sub connectDB()
Set adoCon = New ADODB.Connection
With adoCon
.Provider = "SQLOLEDB"
.ConnectionString = "Server=luoyi;Uid=sa;Pwd=sa;Database=mydb"
.Open
End With
End SubPrivate Sub cmdOK_Click()
'运行时自动检测错误,检测到则到ErrMsg标号处做相应的处理On Error GoTo ErrMsg
Dim SQL As String '定义一个保存SQL语句的变量
'到Login表中查询是否有符合条件的记录存在
'使用的是Select count(*)from..返回值是一个大于等于0的整数
SQL = ""
SQL = "Select Count(*) From Login Where Name='" & Trim(txtname.Text) & "'"
SQL = SQL & " And Password='" & Trim(txtpassword.Text) & "'"Set adoRs = adoCon.Execute(SQL)
If adoRs(0) = 0 Then
MsgBox "您输入的用户名或密码有误,请更正!", vbOKOnly + vbExclamation, "系统提示"
txtname.SetFocus
Exit Sub
End IfUnload Me '通过身份验证后卸载登录窗体
frmsystem.Show '显示系统界面,可以进入系统操作
'运行时自动检测错误,检测到则到ErrMsg标号处做相应的处理On Error GoTo ErrMsg
Dim SQL As String '定义一个保存SQL语句的变量
'到Login表中查询是否有符合条件的记录存在
'使用的是Select count(*)from..返回值是一个大于等于0的整数
SQL = ""
SQL = "Select * From Login Where Name='" & Trim(txtname.Text) & "'"Set adoRs = adoCon.Execute(SQL)
If adoRs.EOF Then
If MsgBox("您输入的用户名有误,请更正!", vbOKCancel + vbExclamation, "系统提示") = vbOk Then
txtname.SetFocus
Exit Sub
Else
Unload me
End
End If
End If
IF adoRs!Password <> Trim(txtpassword.Text) Then
If MsgBox("您输入的密码有误,请更正!", vbOKOnly + vbExclamation, "系统提示"") = vbOk Then
txtname.SetFocus
Exit Sub
Else
Unload me
End
End If
txtname.SetFocus
Exit Sub
End IfUnload Me '通过身份验证后卸载登录窗体
frmsystem.Show '显示系统界面,可以进入系统操作
另,最好设一个密码错误计数器变量,到达允许重试上限后退出。防止恶意猜测密码。 If MsgBox("您输入的密码有误,请更正!", vbOKCancel + vbExclamation, "系统提示"") = vbOk Then
if adors.recordCount =0 then
msgbox "无此用户"
elseif txtpassword.Text <> adors("password") then
msgbox "您输入的密码有误,请更正!"
else
Unload Me '通过身份验证后卸载登录窗体
frmsystem.Show '显示系统界面,可以进入系统操作
sql="select * from rs_login where rs_name='" & Trim(Text1.Text) & " and rs_pwd='" & Trim(Text2.Text) & "'"
Adodc1.RecordSource = sql
If Adodc1.Recordset.RecordCount > 0 Then
.....
else
....
end if