我想做个登录界面,知道的告诉我。我的想法是这样的。。。。。

ioricc 2003-04-21 10:05:53
我想做个登录界面。这个界面有
两个textbox,一个是username,一个是passward,
有两个botton,一个[登录]botton,一个[注册]botton.
这里我想应该要用到数据库了
当我输入了“用户名”和“密码”,单击[登录],
这时要将用户名、密码与数据库中的用户名、密码相比较,
如果用户名,密码都对,就登录成功,否则,就显示登录失败信息,如“您的密码错误”。
关键是我不知道怎么与数据库中的用户名、密码相比较。是了好多遍,都不成功。
郁闷!
特来此请教!!!
最好能把代码写出来。
十二万分感谢!!!
...全文
77 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenyu5188 2003-04-22
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim bh As String
Dim SQLstr As String
Dim msgstring As String
Dim rs As New ADODB.Recordset

If Text1(0).Text = "" Or Text1(1).Text = "" Then
MsgBox "必须输入操作员编号和口令!!!", 48, "错误"
Text1(0).SetFocus
Else
SQLstr = "select * from userID where operatorNo='" & Trim(Text1(0).Text) & "'"
Set rs = ExecuteSQL(SQLstr, msgstring)
If rs.EOF = True Then
MsgBox "操作员编码输入错误!!!", 48, "错误"
Text1(0).Text = ""
Text1(1).Text = ""
Text1(0).SetFocus
Else
If Trim(rs!Password) = Trim(Text1(1).Text) Then
bh = Trim(Text1(0).Text)
Load MDIBookMIs
MDIBookMIs.Show
Unload login
rs.Close
Set rs = Nothing
Else
MsgBox "密码输入错误!!!", 48, "错误"
Text1(1).Text = ""
Text1(1).SetFocus
End If
End If
End If

End Sub
深渊的水影 2003-04-22
  • 打赏
  • 举报
回复
...
netwar 2003-04-22
  • 打赏
  • 举报
回复
Public Function check(error)

Dim test As String
Dim i As Integer
Dim j As Integer
test = "!@#$%^&*()-|\;:'<>/?"


Rem 循环从内到外,原理利用字符形式比较
For i = 1 To Len(error)
For j = 1 To Len(test)
If Mid(error, i, 1) = Mid(test, j, 1) Then '表示检测到错误字符

check = False
Exit Function

End If
'若检测到错误,刚提前退出函数,否则的话继续执行下一语句
Next j
Next i
check = True
'若执行完所有循环,都没有退出,表示没有检测到非法之符
End Function
private sub login_click()
name1trim(text1.text)
pass1trim(text2.text)
if name1"" then
msgbox "对不起登录用户名不能为空",vbokonly+vbinformation,"登录信息 有误!"
text1.setfoucs
exit sub
end if
if pass1="" then
msgbox "对不起请输入你的登录密码!",vbokonly+vbinformation,"登录有误!"
text2.setfoucs
exit sub
end if
if check(name1) and check(pass1) then
rem 下面这问分最好用一个单独的函数比较合适
set cn=createobject("adodb.connection")
cn.open "provider=microsoft.jet.oledb.4.0;data source="& app.path+"\管理系统"+"\system.mdb"
set fs=createobject("adodb.recordset")
sql="select * from users where 用户名='"& name1& "' and 密码='"& pass1 & "'"
fs.open sql,cn,adopenstatic,adlockreadonly
if fs.eof then
msgbox "对不起你的登录有误!",vbokonly+vbinformation,"系统消息"
text1.setfocus
text1.text=""
exit sub
end if '表示用户是合法用户
set cn=nothing
unload me
main.show
else
msgbox "对不起你的输入信息中含有非法之符!",vbokonly+vbexamtion,"系统警告!"
text1.text="":text1.setfoucs:exit sub
end if
xinshou1979330 2003-04-22
  • 打赏
  • 举报
回复
Public Function ExecuteSQL(sql As String) As ADODB.Recordset
Dim cn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim msg As String
On Error GoTo executesql_error
Set cn = New ADODB.Connection
cn.Open "Provider=MSDASQL.1;Persist Security Info=False;Data Source=CY"
Set rst = New ADODB.Recordset
rst.Open Trim$(sql), cn, adOpenKeyset, adLockOptimistic
Set ExecuteSQL = rst
executesql_exit:
Set rst = Nothing
Set cn = Nothing
Exit Function
executesql_error:
msg = "错误原因:" & Err.Description
Resume executesql_exit
End Function




Private Sub frm_ok_Click()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sql As String

If DataCombo1.Text = "" Then
MsgBox "拜托,名都不报就让你进门,我启不是很对不起观众?报上名来~!~", vbOKOnly + vbExclamation, "注意"
DataCombo1.SetFocus
Else
sql = "select*from Cuser where id='" & DataCombo1.Text & "'"
Set rs = ExecuteSQL(sql)
If rs.EOF Then
MsgBox "对不起,你好象是走错门了,也没听过您的大名啊?要不咱在试试~?", vbOKOnly + vbExclamation, "注意"
DataCombo1.SetFocus
DataCombo1.Text = ""
Else
If Trim(rs.Fields(1)) = txt_loadpw.Text Then
If Trim(rs.Fields(2).Value) = 0 Then
MDI_CYMIS.StatusBar1.Panels(3).Text = "您目前的身份为:一般用户,权限仅为浏览"
With frm_umanagement
.cmd_delete.Enabled = False
.cmd_true.Enabled = False
.Frame3.Enabled = False
.Frame5.Enabled = False
.cmd_cok.Enabled = False
.Hide
End With
With MDI_CYMIS
.Menu_nation(1).Enabled = False
.Menu_whcd(6).Enabled = False
.Menu_zc(5).Enabled = False
.Menu_zglx(8).Enabled = False
.Menu_zw(4).Enabled = False
.Menu_zzmm(7).Enabled = False
.Menu_gzlb.Enabled = False
.Menu_adddata(1).Enabled = False
.Menu_changedata(2).Enabled = False
.Menu_deletedata(3).Enabled = False
.Menu_regaindata(4).Enabled = False
.Menu_kqadd.Enabled = False
.Menu_kqcd.Enabled = False
.Menu_gzjf.Enabled = False
.Menu_gztz.Enabled = False
End With
With frm_main
.Save.Enabled = False
.cmd_reg_regain.Enabled = False
.cmd_add.Enabled = False
.cmd_cd.Enabled = False
.cmd_regain.Enabled = False
.Hide
End With
Else
MDI_CYMIS.StatusBar1.Panels(3).Text = "您目前的身份为:系统管理员"
End If
MDI_CYMIS.Show
Me.Hide
DataCombo1.Text = ""
txt_loadpw.Text = ""
Else
MsgBox "对不起,您门是找对了,但钥匙拿错了啊,快换一把试试~?~", vbOKOnly + vbExclamation, "注意"
txt_loadpw.SetFocus
txt_loadpw.Text = ""
End If
End If
End If
End Sub

这是我的登陆代码,目前已经调试成功


windeflower 2003-04-22
  • 打赏
  • 举报
回复
Option Explicit

Public OK As Boolean
Dim miCount As Integer


Private Sub cmdCancel_Click()
'设置全局变量为 false
'不提示失败的登录
OK = False
Me.Hide

End Sub

Private Sub cmdOK_Click()
Dim txtSQL As String
Dim mrc As ADODB.Recordset
Dim msgtext As String
UserName = ""
'判断输入用户名是否为空
If Trim(Combo1.Text = "") Then
MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"
Combo1.SetFocus
Else

'查询指定用户名记录
txtSQL = "select * from 系统用户 where 用户名=""&Combo1.Text&"""
Set mrc = ExecuteSQL(txtSQL, msgtext)
'判断是否存在该用户
If mrc.EOF = True Then
MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"
Combo1.SetFocus
Else
'判断输入密码是否正确
If Trim(mrc.Fields(1)) = Trim(txtPassword.Text) Then
OK = True
mrc.Close
Me.Hide
UserName = Trim(Combo1.Text)
Else
MsgBox "输入密码不正确,请重新输入!", vbOKOnly + vbExclamation, "警告"
txtPassword.SetFocus
txtPassword = ""
End If
End If
End If
'记载输入密码次数
miCount = miCount + 1
If miCount = 3 Then
Me.Hide
End If
Exit Sub
End Sub

Private Sub Form_Load()
OK = False
miCount = 0
End Sub
redhigh 2003-04-22
  • 打赏
  • 举报
回复
呵呵,收藏先~
ioricc 2003-04-21
  • 打赏
  • 举报
回复
to pcwak(书剑狂生) 、czjw(寒雪)
我试试看。谢谢
czjw 2003-04-21
  • 打赏
  • 举报
回复
你可以参考VB自带的登录对话框,选‘工程’-‘添加窗体’-选‘登录对话框’。
这里面虽然没有涉及到数据库核对密码,但是登录审核做的很规范。
一点提示:
如果你的用户名是不重复的话,当点击确定按钮后,打开数据库用用户名做条件检索:
rs.open "select dbpass where userid=" & trim(Text1.text)
if not rs.eof then
if rs("password")=trim(Text2.text) then 密码通过
else
'没有这个用户
end if
pcwak 2003-04-21
  • 打赏
  • 举报
回复
Private Sub cmdOk_Click()
Dim strUserPass As String
'判断用户是否已经输入用户名和密码
golUsername = Trim(txtName.Text)
strUserPass = Trim(txtPass.Text)
If golUsername = "" Then
MsgBox "请输入用户名", vbExclamation, "登录提示"
txtName.SetFocus
Exit Sub
End If
If strUserPass = "" Then
MsgBox "请输入密码", vbExclamation, "登录提示"
txtPass.SetFocus
Exit Sub
End If
'判断用户登录信息是否正确
sRs.Open "select * from TAB_User where 用户名='" & golUsername & "'", sCon, adOpenStatic, adLockOptimistic
If sRs.EOF Then
MsgBox "没有此用户", vbCritical, "登录错误"
txtName.SelStart = 0
txtName.SelLength = Len(txtName.Text)
txtName.SetFocus
sRs.Close
Exit Sub
End If
sRs.Close
sRs.Open "select * from TAB_User where 用户名='" & golUsername & "' and 用户密码='" & strUserPass & "'", sCon, adOpenStatic, adLockOptimistic
If sRs.EOF Then
MsgBox "密码错误", vbCritical, "登录错误"
txtPass.SelStart = 0
txtPass.SelLength = Len(txtPass.Text)
txtPass.SetFocus
sRs.Close
Exit Sub
End If
sRs.Close
ExecuteCommand "update TAB_user set 最近登录时间=#" & Now & "# where 用户名='" & golUsername & "'"
MDIFormMain.Show
Unload Me
End Sub

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧