Ms access 在Access数据库上显示用户

Ms access 在Access数据库上显示用户,ms-access,vba,ms-access-2010,Ms Access,Vba,Ms Access 2010,我正在尝试显示Access数据库中当前的所有用户。我正在使用一个VBA代码,我在网上找到,并试图修改它,以满足我的需要。我正在尝试获取所有可用的用户,并将其显示在表单“ListUsers”的列表框中 代码可以输出到调试窗口,但我无法更新我的列表框。我收到以下错误:“运行时错误“6014”:必须将RowSourceType属性设置为“值列表”才能使用此方法。”我在属性窗口中查找该列表框,但找不到任何与RowSourceType相关的内容。我在网上尝试了一些不同的建议,但我仍然无法更新列表框,所以我

我正在尝试显示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

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

这里还有一个很好的帖子:

此解决方案直接来自Microsoft技术支持文章(),运行良好。请澄清您的实际问题,并提供与该问题相关的代码片段。最重要的是,关键短语是“根据我的需要进行修改”。我知道Microsoft works的代码,但我想将信息输出到表单上的列表框中。你读过这个问题吗@AlexBell您的问题的标题应该与您试图解决的实际问题直接相关,这似乎与标题中所述和您自己的答案中所述的问题不同(您发布的代码片段中的按钮单击事件和列表框在哪里?)。你好,啊,加查!下次我将澄清标题。表单上显示了按钮单击事件。我通过将.RowSourceType=“Value List”添加到我的VBA代码中解决了这个问题。