在做机房的时候,发现自己把登陆窗体的部分给丢掉了,于是查了一下有关的登录知识
1、登陆代码的实现
首先,登陆就需要有username,需要先在模块里用一个API函数,Getuser。
Public Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Public UserName As String '先定义一个username<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span>
Public OK As Boolean '定义一个ok的boolean 变量,用于username的使用
Dim micount As Integer '定义一个输入次数<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span>
在formload 中写:
Private Sub Form_Load()
Dim sBuffer As String '定义一个缓存数据
Dim lSize As Long
sBuffer = Space$(255)
lSize = Len(sBuffer) '把sbuffer的缓存里的内容赋值给lsize
Call GetUserName(sBuffer, lSize) 'API中的字符串做参数,但需要提前确定大小
If lSize > 0 Then
Text1.Text = ""
Else
Text1.Text = vbNullString '没有字符串
End If
OK = False
micount = 0
End Sub
在cmdok 中写:
Private Sub cmdOk_Click()
UserName = "" '先让用户名为空
If Trim(Text1.Text = "") Then '判断用户名的输入是否为空
MsgBox "请重新输入用户名!", vbOKOnly + vbExclamation, "提示"
Text1.SetFocus
Else '如果不为空的话,就可以调出数据库了,找出与输入的用户名相对应的那一行
txtSQL = "select * from user_Info where userID= '" & Text1.Text & "'" '先调出数据库的那一行
Set mrc = ExecuteSQL(txtSQL, msgText) '然后再用Execute 执行SQL语句
If mrc.EOF Then '如果到了数据库的最后一行,那么,就是没有这个数据
MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"
Text1.Text = ""
Text1.SetFocus
Else '如果用户名输对了,那么就需要验证密码是否正确了
If Trim(mrc.Fields(1)) = Trim(Text2.Text) Then
OK = True '如果用户名对了的话,那么ok就赋值与true
mrc.Close '全对了,就关闭数据库
Me.Hide '隐藏窗体
UserName = Trim(Text1.Text) '把username指定值为当前用户输入的值
Else '如果密码不正确的话,在msgbox
MsgBox "输入密码吧正确,请重新输入!", vbOKOnly + vbExclamation, "警告"
Text2.Text = ""
Text2.SetFocus
End If
End If
End If
micount = micount + 1 '最后在每次输入不正确的时候,都记录下一个值,即micount
If micount = 3 Then
MsgBox "您已输入3次错误!"
Me.Hide
End If
Exit Sub
End Sub
在cmdcancel里面写:
Private Sub cmdCancel_Click()
OK = False '当取消登录时,它会让ok等于false
Me.Hide
End Sub
好了,代码部分实现了登陆,可是你会发现登陆界面不能再主窗体前面出现,所以,以下代码可以实现:
在模块里写下如下代码:
Public fMainForm As frmMain
Sub Main()
Dim fLogin As New frmlogin
fLogin.Show vbModal '显示登录窗体
If Not fLogin.OK Then
End
End If
Unload fLogin
' Set fMainForm = New frmMain '显示主窗体
' fMainForm.Show
frmMain.Show
End Sub
这样一个登陆窗体就完美的显示了~