|
两个问题:
首先说明一下,我是用用户名或拥护ID来登陆,由于同一用户的名字和ID都唯一,所以对应的密码是唯一的,就是方便使用者。
1、首先是判断当前用户或用户ID是否存在的问题。
我参考了一下“红尘如烟”的事例,修改了以下,代码如下:
- Private Sub UserName_AfterUpdate()
- Dim cn As New ADODB.Connection '定义数据链接对象 ,保存连接数据库信息;请先添加ADO引用
- Dim rs As New ADODB.Recordset '定义记录集对象,保存数据表
- Dim strCn As String, strSQL As String '字符串变量
- strCn = "Provider=sqloledb;Server=10.52.111.8;Database=CRM;Uid=sa;Pwd=;" '定义数据库链接字符串
- cn.Open strCn '与数据库建立连接,如果成功,返回连接对象cn
- strSQL = "select * from CRM.dbo.userA where psnam='" & UserName & "'" '定义SQL查询命令字符串
- cn.Open strCn '与数据库建立连接,如果成功,返回连接对象cn
- rs.Open strSQL, cn '执行strSQL所含的SQL命令,结果保存在rs记录集对象中
- If rs.RecordCount = 0 Then
- setFormPos Me, False
- MsgBox "此用户不存在!", vbCritical, " "
- UserName = ""
- rs.Close
- Set rs = Nothing
- End If
- End Sub
复制代码
我的意思是如果数据库表USERA不存在当前用户,则RS肯定是空的,来做判断条件,但好象有问题,一时搞不明白问题出在什么地方了~~
大家帮我看看。
2、是在登陆的使用,怎么感觉我的判断条件不起作用,密码对不对,用户对不对都可以直接进去了,汗~~,代码如下:
- Private Sub cmdYY_Click()
- On Error Resume Next
- Static n As Integer
- If Nz(Me.UserName) = "" Then
- setFormPos Me, False
- MsgBox "请输入用户名!", vbInformation, " "
- Me.UserName.SetFocus
- Exit Sub
- End If
- If Nz(Me.Password) = "" Then
- setFormPos Me, False
- MsgBox "请输入密码!", vbInformation, " "
- Me.Password.SetFocus
- Exit Sub
- End If
- Dim cn As New ADODB.Connection
- Dim rs As New ADODB.Recordset
- Dim strCn As String, strSQL As String
- strCn = "Provider=sqloledb;Server=10.52.111.8;Database=CRM;Uid=sa;Pwd=;"
- cn.Open strCn
- strSQL = "select * from CRM.dbo.userA where sno='" & UserName & "' or psnam='" & UserName & "'"
- cn.Open strCn
- rs.Open strSQL, cn
- If Me.Password = rs!psword And (Me.UserName = rs!psnam Or Me.UserName = rs!sno) Then
- DoCmd.Close
- DoCmd.Close acForm, "登陆背景", acSaveYes
- DoCmd.OpenForm "窗体1"
- DoCmd.RunCommand acCmdAppMaximize
- rs.Close
- Set rs = Nothing
- Exit Sub
- End If
- If n = 2 Then
- setFormPos Me, False
- MsgBox "您3次密码输入错误!系统即将退出!", vbCritical, "密码错误"
- DoCmd.Quit
- Else
- setFormPos Me, False
- MsgBox "3次密码输入错误将退出系统。您还可以输入" & 2 - n & "次!", vbCritical, "密码错误"
- End If
- Password.SetFocus
- n = n + 1
- End Sub
复制代码
因为第一次使用ACCESS连接SQL,所以不是很懂,
基础较糟糕,主要在参考各位的事例,呵呵,有点拿来主义,大家别介意啊,请帮帮忙吧~~~ |
|