我做了一个库存管理登录系统,其中做了一个用户操作权限管理(详见附件),原来做的用户名、密码、操作权限均放在Excel工作表,运行正常,现在我将其保存到数据库中的“用户名密码信息”数据表中,请问如何写这个代码,现附上原来的代码,请各位帮忙!!!附件地址:
http://download.csdn.net/detail/longzhu0623/7204547
个人认为我的需求共分三个步骤写代码:
第1步:链接数据库并刷新用户列表;
第2步:给用户列表下的用户权限进行赋值;
第3步:保存权限修改;
现在我写完了第1步,第3步应该没有问题,关键是第2步我现在不知道应该怎么写,请各位指点一下,拜托啦!
具体代码如下(详见附件):
Dim cnn As New ADODB.Connection
Dim rsx As ADODB.Recordset
'第1步代码:
Private Sub UserForm_initialize()
Dim i As Integer, n As Long
Dim rsSQL As New ADODB.Recordset
Dim sql As String
'建立与数据库的连接
With cnn
.ConnectionString = "Provider=microsoft.jet.oledb.4.0;" _
& "Data Source=" & ThisWorkbook.Path & "\数据库.mdb;"
.Open
End With
sql = "select distinct 用户名 from 用户名密码信息 order by 用户名"
Set rsx = New ADODB.Recordset
rsx.Open sql, cnn, adOpenKeyset, adLockOptimistic
With 用户列表
.Clear
Do While Not rsx.EOF
.AddItem rsx!用户名
rsx.MoveNext
Loop
End With
On Error Resume Next
用户列表.ListIndex = 0
Application.EnableEvents = True
End Sub
Private Sub 关闭_Click()
Unload Me
End Sub
'原第1步代码:
'Private Sub UserForm_initialize()
'Dim intRowsCount As Integer, i As Integer
'Application.EnableEvents = False
'intRowsCount = 用户管理.Range("A" & Rows.Count).End(xlUp).Row
'For i = 2 To intRowsCount
' 用户列表.AddItem 用户管理.Range("A" & i)
'Next
'用户列表.ListIndex = 0
'Application.EnableEvents = True
'End Sub
'
'Private Sub 关闭_Click()
'Unload Me
'End Sub
'原第3步代码:
Private Sub 确定_Click()
Dim intRowsCount As Integer, i As Integer
intRowsCount = 用户管理.Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To intRowsCount
If 用户列表.Text = 用户管理.Range("A" & i) Then
With 用户管理
.Range("C" & i) = 管理用户.Value
.Range("D" & i) = 管理日志.Value
End With
End If
Next i
Unload Me
End Sub
'原第2步代码:
Private Sub 用户列表_change()
Dim intRowsCount As Integer, i As Integer
intRowsCount = 用户管理.Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To intRowsCount
If 用户管理.Range("A" & i) = 用户列表.Text Then
With 用户管理
管理用户.Value = CBool(.Range("C" & i))
管理日志.Value = CBool(.Range("D" & i))
End With
Exit Sub
End If
管理用户.Value = False
管理日志.Value = False
Next
End Sub