Office中国论坛/Access中国论坛
标题:
请教ADO连接SQLserver的问题
[打印本页]
作者:
ty_1029
时间:
2009-6-26 12:51
标题:
请教ADO连接SQLserver的问题
两个问题:
首先说明一下,我是用用户名或拥护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,所以不是很懂,
基础较糟糕,主要在参考各位的事例,呵呵,有点拿来主义,大家别介意啊,请帮帮忙吧~~~
作者:
ty_1029
时间:
2009-6-26 16:39
各位高手,腾出一点时间帮我看一下吧~~
作者:
t小宝
时间:
2009-6-26 23:58
看不出什么问题
作者:
ty_1029
时间:
2009-6-28 09:17
我看了半天,我自己感觉问题出在
cn.Open strCn '与数据库建立连接,如果成功,返回连接对象cn
rs.Open strSQL, cn '执行strSQL所含的SQL命令,结果保存在rs记录集对象中
复制代码
两段中,cn.Open strCn 感觉多余,第二段cn后面难道一定要加属性的要求吗?
作者:
fytxcf
时间:
2009-6-29 21:20
aaaaaaa
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3