在Access数据库上显示用户

时间:2016-03-14 20:55:00

标签: vba ms-access access-vba ms-access-2010

我正在尝试显示当前在Access数据库中的所有用户。我正在使用我在网上找到的VBA代码,并且正在尝试根据我的需要对其进行修改。我正在尝试获取所有可用的用户并将其显示在名为“ListUsers”的表单上的列表框中。

代码能够输出到调试窗口,但我无法更新列表框。我收到以下错误:“运行时错误'6014':必须将RowSourceType属性设置为'值列表'才能使用此方法。”我查看了该列表框的属性窗口,但找不到与RowSourceType相关的任何内容。我在网上尝试了一些不同的建议,但我仍然无法更新列表框,所以我想看看这里是否有人可能有一些想法。我的代码如下,我点击了按钮上的VBA代码。

Option Compare Database
Option Explicit

Private Sub cmd_Users_Click()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.recordset
Dim i, j As Long

Set cn = CurrentProject.Connection

' The user roster is exposed as a provider-specific schema rowset
' in the Jet 4.0 OLE DB provider.  You have to use a GUID to
' reference the schema, as provider-specific schemas are not
' listed in ADO's type library for schema rowsets

Set rs = cn.OpenSchema(adSchemaProviderSpecific, _
, "{947bb102-5d43-11d1-bdbf-00c04fb92675}")

'Output the list of all users in the current database.

Debug.Print rs.Fields(0).Name, "", rs.Fields(1).Name, _
"", rs.Fields(2).Name, rs.Fields(3).Name

While Not rs.EOF
    Debug.Print rs.Fields(0), rs.Fields(1), _
    rs.Fields(2), rs.Fields(3)
    ListUsers.AddItem "'" & rs.Fields(0) & "-" & rs.Fields(1) & "'"
    rs.MoveNext
Wend

End Sub

1 个答案:

答案 0 :(得分:0)

我想通了......我必须在代码上设置RowSourceType。我在按钮点击事件中添加了以下内容: Me.ListUsers.RowSourceType ="值列表"

此处还有一篇好文章: Ms Access AddItem with VBA