我想在認爲是系統當前用戶的計算機名Access創建一個表當前訪問用戶的用戶列表。創建
我到目前爲止的代碼是
Option Compare Database
Option Explicit
Sub ShowUserRosterMultipleUsers()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim i, j As Long
Set cn = CurrentProject.Connection
Dim dbs As Database, tbl As TableDef, fld As Field
Set dbs = CurrentDb
Set tbl = dbs.CreateTableDef("Users")
Set fld = tbl.CreateField("User#", dbText)
' 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)
rs.MoveNext
Wend
tbl.Fields.Append ?
End Sub
我發現並更新了一下作品的代碼,但它只能輸出到即時窗口,其中debug.print應該,但我需要創建一個包含所有數據的表格。
任何幫助,將不勝感激。
在此先感謝。
那麼是什麼阻止你?創建一個表,並將調用替換爲'Debug.Print',代碼將一行附加到表並設置字段值。你已經有代碼展示瞭如何從數據集中讀取字段('rs.Fields()')。 –
我已經添加了創建表函數,在這一點上,我不知道如何將它調用到另一個表中。我想我無法設置rs.fields(0),這是我需要的,所以我可以把它叫做表格。你的回答在谷歌上搜索了一些不同的想法,我會繼續努力,謝謝。 – Cameron
在'While Not rs.Eof'循環中,'tbl.Append'添加一條新記錄。 'tbl.Fields(0)'可以訪問第一個字段,就像'rs.Fields(0)'可以訪問記錄集的第一個字段。 '.Value'從現場IIRC讀取和/或寫入。 –