一、界面设计
各控件名称属性分别为:label1 、text1 、label2、text2、commandok、cmdcancel
登录成功后显示的窗体:
代码设计如下:
'首先添加一个模块,写上以下通用声明和Sub main():
Public conn As ADODB.Connection '通用(声明)
Sub main()
Set conn = New ADODB.Connection '通用(main)
conn.ConnectionString = "Provider=SQLOLEDB.1Persist Security Info=False" _
+ "User ID=sapassword=123Initial Catalog=dengluData Source=127.0.0.1" '连接数据库代码
conn.Open
frmLogin.Show '首先显示登录界面。也可以在工程属性中设置启动对象为Sub main()或者frmlogin窗体
End Sub
'在Frmlogin 代码窗口,为cmdok控件写以下代码:
Private Sub cmdok_Click()
If text1.Text = "" Then
MsgBox "用户名不能为空!", vbOKOnly + vbInformation, "友情提示"
text1.SetFocus
Exit Sub '若用户名文本框内为空,则出现提示框
End If
If text2.Text = "" Then
MsgBox "密码不能为空!", vbOKOnly + vbInformation, "友情提示"
text2.SetFocus
Exit Sub '若输入密码文本框为空,也出现提示框
End If
Dim strSQl As String
strSQl = "select * from User1 where username='" &Trim$(text1.Text) &"' and pwd='" &Trim$(text2.Text) &"' "
'书写SQL代码,查询User1表中是否存在窗体中用户输入的信息。
Dim str As New ADODB.Recordset
Set str = New ADODB.Recordset
str.CursorLocation = adUseClient
str.Open strSQl, conn, adOpenStatic, adLockReadOnly
With str
If .State = adStateOpen Then .Close
.Open strSQl
If .EOF Then
Try_times = Try_times + 1
If Try_times >= 3 Then
MsgBox "您已连续三次输入错误,系统将自动关闭", vbOKOnly + vbCritical, "警告"
Unload Me '若用户连续输入3次错误密码,则系统关闭
Else
MsgBox "对不起,用户名不存在或密码错误 !", vbOKOnly + vbQuestion, "警告"
text1.SetFocus
text1.Text = ""
text2.Text = ""
End If
Else
Unload Me '若登录成功,则隐藏当前窗体
Form2.Show '然后显示Form窗体
End If
End With
End Sub
Private Sub cmdCancel_Click()
End '若单击Cmdcel按钮,则结束应用程序
End Sub
运行中存在的问题:
代码中有Dim conn As adodb.connection,运行时显示"用户定义类型未定义"
解决方法:点击“工程”--“引用”找到“Microsoft ActiveX Data Object 2.6”
然后就就可以正常运行了。
问题看不大懂,你是说你要编写一个系统,不知道怎样实现系统登陆吗?1.建立数据库如AA--建表如B表(表中包含用户,密码列),在表中相应列填写相应数据。
2.打开VB--创建标准EXE窗体,添加两个Text控件,再添加两个按钮。分别是登陆和退出。新增部件找到 微软ADO控件选择上。再在窗体任意位置田间一个ADO控件。
3.退出中写 end ;右击ADODC控件属性,点生成,找到SQL server再点下一步,选择“使用Windows NT集成安全设置”选项,在“在服务器上选择数据库”下拉单中找到你建的数据库AA,点击“测试连接”,成功后点确定。登陆按钮的代码如下:
If Text1 = "" Then
MsgBox "请输入用户名"
Text1.SetFocus
Exit Sub
End If
If Text2 = "" Then
MsgBox "请输入密码"
Text2.SetFocus
Exit Sub
End If
'将用户输入赋值到变量中
NameKey = Trim(combo1)
PasswordKey = Trim(Text2.Text)
'判断用户是否存在
Adodc1.RecordSource = "select * from AA where 用户名 = '" + NameKey + "'"
Adodc1.Refresh
If Adodc1.Recordset.EOF = True Then
MsgBox "用户名不存在"
Try_times = Try_times + 1
If Try_times >= 3 Then
MsgBox "您已经三次尝试进入本系统,均不成功,系统将关闭"
Exit Sub
Else
Exit Sub
End If
End If
'判断密码是否正确
If PasswordKey <>Adodc1.Recordset.Fields(1) Then
MsgBox "密码错误"
Try_times = Try_times + 1
If Try_times >= 3 Then
MsgBox "您已经三次尝试进入本系统,均不成功,系统将关闭"
Exit Sub
Else
Exit Sub
End If
End If
'关闭登录对话框
Unload Me
Form2.Show
form2是你的系统主界面。
要是一切无误而提醒密码错误的话,就修改AA表的密码的字符类型或密码位数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)