大家好,我是初学VB的新手,有个很郁闷的问题请教大家,请高手不吝赐教。
我在用LoginFrm登录的时候,输入正确的密码(从数据库复制和直接输入都试过),总是提示密码错误。但是我明明输入的是正确的啊。而把ACCESS数据库中的密码字段置空又可以登录。
-----------------------------------------------
窗体LoginFrm的代码:
Private Sub LoginCmd_Click()
If UIDComb.Text = "" Then
MsgBox "请选择用户!", 48, "错误提示"
Exit Sub
End If
Call OpenConn
sql = "select * from UserID where Uname='" & UIDComb.Text & "'"
rs.Open sql, cn, 1, 1
If zhuan(PassComb.Text) = IIf(Trim(IsNull(rs.Fields("Upass"))), "", Trim(rs.Fields("Upass"))) Then
Optor = rs.Fields("Uname")
UsePwr = rs.Fields("Power")
Call CloseConn
MDIForm1.Show
Unload Me
Else
MsgBox "密码错误!", 48, "错误提示"
'PassComb
End If
End Sub
Private Sub ExitCmd_Click()
End
End Sub Private Sub Form_Load()
Me.Picture1.Picture = LoadPicture(App.Path & "\Pic\login.bmp")
Call OpenConn
sql = "select * from UserID"
rs.Open sql, cn, 1, 1
Do While Not rs.EOF
Uname = rs.Fields("Uname")
UIDComb.AddItem (Uname)
rs.MoveNext
Loop
Call CloseConn If Dir(App.Path & "\backup", vbDirectory) = "" Then
MkDir (App.Path & "\backup")
End If
End Sub
-------------------------------
CONN.bas的代码:
Public Optor As String '操作员
Public UsePwr As String '权限
Public cn As New ADODB.Connection
Public rs As New ADODB.Recordset
Public Sub OpenConn()
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
cn.CursorLocation = adUseClient
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\data\data.dll;_
Jet OLEDB:Database Password=12345;Persist Security Info=False;"
End Sub
'关闭数据库连接
Public Sub CloseConn()
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub '系统名称
Public Property Get sysname() As Variant
sysname = "管理系统"
End Property
-----------------------------------------
数据库信息
库名:data.dll
表名:UserID
字段:
Uname =Admin 直接显示在UIDComb中由用户选择
Upass =12345678 不能登陆。只有为空才能登录
Power =1
---------------------------------
请各位帮忙看看我究竟错在哪。还有,我到底有多少分呢?如果有回答,我该怎样给分?
我在用LoginFrm登录的时候,输入正确的密码(从数据库复制和直接输入都试过),总是提示密码错误。但是我明明输入的是正确的啊。而把ACCESS数据库中的密码字段置空又可以登录。
-----------------------------------------------
窗体LoginFrm的代码:
Private Sub LoginCmd_Click()
If UIDComb.Text = "" Then
MsgBox "请选择用户!", 48, "错误提示"
Exit Sub
End If
Call OpenConn
sql = "select * from UserID where Uname='" & UIDComb.Text & "'"
rs.Open sql, cn, 1, 1
If zhuan(PassComb.Text) = IIf(Trim(IsNull(rs.Fields("Upass"))), "", Trim(rs.Fields("Upass"))) Then
Optor = rs.Fields("Uname")
UsePwr = rs.Fields("Power")
Call CloseConn
MDIForm1.Show
Unload Me
Else
MsgBox "密码错误!", 48, "错误提示"
'PassComb
End If
End Sub
Private Sub ExitCmd_Click()
End
End Sub Private Sub Form_Load()
Me.Picture1.Picture = LoadPicture(App.Path & "\Pic\login.bmp")
Call OpenConn
sql = "select * from UserID"
rs.Open sql, cn, 1, 1
Do While Not rs.EOF
Uname = rs.Fields("Uname")
UIDComb.AddItem (Uname)
rs.MoveNext
Loop
Call CloseConn If Dir(App.Path & "\backup", vbDirectory) = "" Then
MkDir (App.Path & "\backup")
End If
End Sub
-------------------------------
CONN.bas的代码:
Public Optor As String '操作员
Public UsePwr As String '权限
Public cn As New ADODB.Connection
Public rs As New ADODB.Recordset
Public Sub OpenConn()
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
cn.CursorLocation = adUseClient
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\data\data.dll;_
Jet OLEDB:Database Password=12345;Persist Security Info=False;"
End Sub
'关闭数据库连接
Public Sub CloseConn()
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub '系统名称
Public Property Get sysname() As Variant
sysname = "管理系统"
End Property
-----------------------------------------
数据库信息
库名:data.dll
表名:UserID
字段:
Uname =Admin 直接显示在UIDComb中由用户选择
Upass =12345678 不能登陆。只有为空才能登录
Power =1
---------------------------------
请各位帮忙看看我究竟错在哪。还有,我到底有多少分呢?如果有回答,我该怎样给分?
Public Function zhuan(Str)
If Len(Str) >= 4 Then
Str = Str & Mid(Str, 2, 2)
Str = Right(Str, 3) & Str
Str = Replace(Str, "0", "C")
Str = Replace(Str, "1", "p")
Str = Replace(Str, "2", "w")
Str = Replace(Str, "3", "x")
Str = Replace(Str, "4", "E")
Str = Replace(Str, "5", "T")
Str = Replace(Str, "6", "J")
Str = Replace(Str, "7", "q")
Str = Replace(Str, "8", "O")
Str = Replace(Str, "9", "V")
zhuan = Str
Else
Str = Str
zhuan = Str
End IfEnd Function
这是网上抄的
感谢fvflove画的圈
不过我是第一次发贴,奴隶啊,有分了一定送,很谢谢你!