我用的开发语言是VB,数据库sever2000,
今天搞了好久都做不来~真的心烦死了~希望个位大虾帮忙解决下
要求是输入账号和密码,正确就可以登入~
根据输入的用户名去检索用户表,存在时再判断密码是否正确!
基本上是按照楼上所说的,但如果你是想以用户所输入的用户名及密码来打开连接的话,那么需要把用户名及密码加到连接字符串中,如:
Conn.ConectionString="Provider=SQLOLEDB.1;Persist Security Info=False;" & _
"User ID=" & Username & ";password=" & UserPass & ";Initial Catalog=database;Data Source=sqlserver"
=====================================================================
模块名称:frmLogin.frm
模块功能:系统登录模块
模块说明:货运管理系统->系统登录模块
注 解:实现货运管理系统中的操作员登录。
作 者: 日 期:
修改说明:
=====================================================================
Option Explicit
Dim strPWD As String 操作员密码
Dim iTry As Integer 登录最大出错次数
Dim bSucceed As Boolean 登录成功的标志
窗体加载:加载操作员列表 "操作员姓名(编号)[密码]{权限}"
---------------------------------------------------------
Private Sub Form_Load()
Dim rsTemp As ADODB.Recordset
Set rsTemp = DbConn.Execute("Select ID,AccountName,AccountPWD,Limit,Name From Accounts")
If Not rsTemp.EOF Then
Do While Not rsTemp.EOF
cmbOpr.AddItem Trim(rsTemp.Fields("AccountName")) & Space(50 - Len(rsTemp.Fields("AccountName"))) & _
"(" & Trim(rsTemp.Fields("ID")) & ")" & _
"[" & Trim(rsTemp.Fields("AccountPWD")) & "]" & _
"{" & Trim(rsTemp.Fields("Limit")) & "}"
rsTemp.MoveNext
Loop
cmbOpr.ListIndex = 0
End If
lblDate.Caption = "当前日期:" & Year(Now) & "年" & Month(Now) & "月" & Day(Now) & "日"
bSucceed = False: Set rsTemp = Nothing
End Sub
窗体激活:设置焦点引导用户
---------------------------------------------------------
Private Sub Form_Activate()
cmbOpr.SetFocus: SendKeys "%{down}"
End Sub
选择操作员:确定该操作员的姓名、编号、密码 "操作员姓名(编号)[密码]"
---------------------------------------------------------
Private Sub cmbOpr_Click()
OprName = Trim(Left(cmbOpr.Text, InStr(1, cmbOpr.Text, "(") - 1))
OprCode = GetCode(cmbOpr.Text, "(", ")")
OprLimit = GetCode(cmbOpr.Text, "{", "}")
strPWD = GetCode(cmbOpr.Text, "[", "]")
End Sub
确定【登录】:载入主界面
---------------------------------------------------------
Private Sub cmdLogin_Click()
Call txtPWD_KeyPress(vbKeyReturn)
If bSucceed = False Then Exit Sub
Me.MousePointer = vbHourglass [等待]的系统鼠标状态
写系统使用日志
Call WriteSysLog(EventType.LogonSystem, OprName, "操作员[" & OprName & "]正常登录系统。", Now, "")
frmMain.Show 载入主界面
Me.MousePointer = vbDefault 恢复系统默认的鼠标状态
Unload Me
End Sub
【退出】:终止应用
---------------------------------------------------------
Private Sub cmdQuit_Click()
Unload Me: Set frmLogin = Nothing
End Sub
密码校验[Start]
---------------------------------------------------------
Private Sub txtPWD_KeyPress(KeyAscii As Integer)
If KeyAscii <> vbKeyReturn Then Exit Sub
iTry = iTry + 1
If iTry >= 3 Then
写系统使用日志
Call WriteSysLog(EventType.LogonTry, OprName, "操作员[" & OprName & "]尝试登录系统。", Now, "第" & iTry & "次,登录失败!")
MsgBox "对不起,您的出错次数以达最大!" & vbNewLine & _
"为了系统的安全,应用即将终止!" & vbNewLine & vbNewLine & _
"请和系统管理员联系,以确认您身份的有效性!", vbOKOnly, "提示->登录出错"
Set frmLogin = Nothing: End
End If
If Trim(txtPWD.Text) = strPWD Then
bSucceed = True: cmdLogin.SetFocus
Else
写系统使用日志
Call WriteSysLog(EventType.LogonTry, OprName, "操作员[" & OprName & "]尝试登录系统。", Now, "第" & iTry & "次,登录失败!")
MsgBox "您输入的密码错误!" & vbNewLine & _
"您最多还可以出错" & 3 - iTry & "次,请注意您的输入!", vbExclamation + vbOKOnly, "提示->密码错误"
txtPWD.SetFocus 密码输入框清空
SendKeys "{Home}+{End}": SendKeys "{BackSpace}"
End If
End Sub