读书人

VB and SQLserver做系统 判定用户权限

发布时间: 2012-05-15 14:35:29 作者: rapoo

VB and SQLserver做系统 判定用户权限问题 在线等 高手速度来
在登录界面判断用户权限。(用户权限表 成员: 职工号 权限)权限等级设为1,2,3,4,5,6
在登录界面添加ADO控件,用职工号 密码进行登录时,对当前登录的职工号进行选线判定。。在登录界面添加text3,当账号登录时,会在权限表中查找该账号所对应的账号等级 问题是 command的enable 不会因为权限值而出现false 或者true
代码如下:
Private Sub Command1_Click()
Dim a1 As String
If Trim(Text1.Text) = "" Then
MsgBox "请输入用户名", vbExclamation, "注意"
Text1.SetFocus
Else
On Error GoTo Errorhandle
mycon.ConnectionString = "Driver={SQL Server};Server=ASUS-PC;UID=" & Trim(Text1.Text) & ";pwd =" & Trim(Text2.Text) & ";Datebase=研究所管理"
mycon.Open
Form20.Text1.Text = Form2.Text1.Text

Form20.Text2.Text = Form2.Text3.Text

Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "select * from 系统用户角色表 where 职工号='" & Trim(Text1.Text) & "' " Adodc1.Refresh
Text3.Text = Adodc1.Recordset("权限")
Debug.Print Text3
Dim ntext As Integer
nTest = Val(Text3.Text)

Select Case (ntext)

Case 1
Form20.Command1.Enabled = True
Form20.Command2.Enabled = False
Form20.Command3.Enabled = False
Form20.Command4.Enabled = False
Form20.Command5.Enabled = False
Form20.Command6.Enabled = False
Case 2
Form20.Command1.Enabled = True
Form20.Command2.Enabled = False
Form20.Command3.Enabled = False
Form20.Command4.Enabled = True
Form20.Command5.Enabled = False
Form20.Command6.Enabled = False
Case 3
Form20.Command1.Enabled = True
Form20.Command2.Enabled = False
Form20.Command3.Enabled = False
Form20.Command4.Enabled = False
Form20.Command5.Enabled = False
Form20.Command6.Enabled = True
Case 4
Form20.Command1.Enabled = False
Form20.Command2.Enabled = False
Form20.Command3.Enabled = False
Form20.Command6.Enabled = False
Form20.Command4.Enabled = True
Form20.Command5.Enabled = True
Case 5
Form20.Command1.Enabled = True

Form20.Command3.Enabled = True
Form20.Command4.Enabled = True
Form20.Command5.Enabled = True
Form20.Command6.Enabled = True
Form20.Command2.Enabled = False
Case 6
Form20.Command1.Enabled = True
Form20.Command2.Enabled = True
Form20.Command3.Enabled = True
Form20.Command4.Enabled = True
Form20.Command5.Enabled = True
Form20.Command6.Enabled = True

End Select

Unload Me

Form20.Show
---------------------------分割线
debug.print 测试 text3的值能正常显示 ,, 问题是 command的enable 不会因为权限值而出现false 或者true

[解决办法]
你的代码基本没大问题,有问题,那是出在Form20上

VB code
Private Sub Command1_Click()    Dim a1 As String    Dim Q As Long        On Error GoTo Errorhandle        If Trim(Text1.Text) = "" Then        MsgBox "请输入用户名", vbExclamation, "注意"        Text1.SetFocus        Exit Sub    End If    '既然使用了ADODC控件,就不需要再创建连接对象'    mycon.ConnectionString = "Driver={SQL Server};Server=ASUS-PC;UID=" & Trim(Text1.Text) & ";pwd =" & Trim(Text2.Text) & ";Datebase=研究所管理"'    mycon.Open        Adodc1.CommandType = adCmdText    Adodc1.RecordSource = "select * from 系统用户角色表 where 职工号='" & Trim(Text1.Text) & "' "    Adodc1.Refresh            Load Form20        Q = Adodc1.Recordset("权限")                Debug.Print Text3    '    Dim ntext As Integer'    nTest = Val(Text3.Text)            With Form20        .Text1.Text = Form2.Text1.Text        .Text2.Text = CStr(Q)                Select Case Q        Case 1            .Command1.Enabled = True            .Command2.Enabled = False            .Command3.Enabled = False            .Command4.Enabled = False            .Command5.Enabled = False            .Command6.Enabled = False        Case 2            .Command1.Enabled = True            .Command2.Enabled = False            .Command3.Enabled = False            .Command4.Enabled = True            .Command5.Enabled = False            .Command6.Enabled = False        Case 3            .Command1.Enabled = True            .Command2.Enabled = False            .Command3.Enabled = False            .Command4.Enabled = False            .Command5.Enabled = False            .Command6.Enabled = True        Case 4            .Command1.Enabled = False            .Command2.Enabled = False            .Command3.Enabled = False            .Command6.Enabled = False            .Command4.Enabled = True            .Command5.Enabled = True        Case 5            .Command1.Enabled = True                    .Command3.Enabled = True            .Command4.Enabled = True            .Command5.Enabled = True            .Command6.Enabled = True            .Command2.Enabled = False        Case 6            .Command1.Enabled = True            .Command2.Enabled = True            .Command3.Enabled = True            .Command4.Enabled = True            .Command5.Enabled = True            .Command6.Enabled = True            End Select    End With        Form20.Show    Unload MeEnd Sub 


[解决办法]

VB code
Dim ntext As IntegernTest = Val(Text3.Text)Select Case (ntext)'都没看到你赋值,可能是你想要的结果吗?ntext,nTest 自已看吧 

读书人网 >VB

热点推荐