2016-03-14 46 views
-1

我試圖顯示當前在我的Access數據庫上的所有用戶。我正在使用我在網上找到的VBA代碼,並試圖根據需要對其進行修改。我試圖讓所有可用的用戶在名爲「ListUsers」的表單上的列表框中顯示。在Access數據庫上顯示用戶

該代碼能夠輸出到調試窗口,但我無法更新我的列表框。我得到以下錯誤:「運行時錯誤'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 
+0

該解決方案直接從Microsoft支持文章(HTTPS來了: //support.microsoft.com/en-us/kb/285822),它工作正常。請澄清您的實際問題並提供與THAT問題相關的代碼片段。最好的問候, –

+0

關鍵在於「修改它以滿足我的需求」。我知道微軟的代碼工作,但我想將信息輸出到我的表單上的列表框。你甚至讀過這個問題嗎? @AlexBell – lunar8nrg

+0

您的問題的標題應直接與您正在嘗試解決的實際問題相關,這似乎與標題中所述的問題有所不同,並且在您自己的答案中提到(在哪裏是按鈕點擊事件和列表框在你發佈的代碼片段?)。問候, –

回答

0

我想通了......我不得不在代碼上設置RowSourceType。我添加了以下到按鈕單擊事件: Me.ListUsers.RowSourceType =「價值榜」

也有很好的帖子在這裏: Ms Access AddItem with VBA