- ベストアンサー
ACCESSについて教えて下さい。
データベースにログオンしているユーザーを Microsoft Jet UserRoster で調べる方法 http://support.microsoft.com/kb/285822/ を調べたのですが、この方法だとDebug.Printでイミディエイト ウィンドウに値を返していますよね?? これをフォームを作成しテキストBoxなどに返す方法を教えて下さい。 宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ただ見せるだけでよいのですよね? フォーム名を、F1 テキストボックス名を、TX1 としたら下記の感じで如何でしょ。 テキストボックスのフォントは、Pの付かない当幅フォントにして下さい。 Sub ShowUserRosterMultipleUsers2() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim i, j As Long Dim s As String 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. s = Format(rs.Fields(0).Name, String(20, "@")) _ & Format(rs.Fields(1).Name, String(20, "@")) _ & Format(rs.Fields(2).Name, String(20, "@")) _ & Format(rs.Fields(3).Name, String(20, "@")) While Not rs.EOF s = s & vbCrLf _ & Format(Left(rs.Fields(0), Len(Trim(rs.Fields(0))) - 1), String(20, "@")) _ & Format(Left(rs.Fields(1), Len(Trim(rs.Fields(1))) - 1), String(20, "@")) _ & Format(rs.Fields(2), String(20, "@")) _ & Format(Nz(rs.Fields(3), "Null"), String(20, "@")) rs.MoveNext Wend Forms!f1!tx1 = s rs.Close Set rs = Nothing cn.Close End Sub 説明 Format(rs.Fields(0).Name, String(20, "@")) 文字の桁数を20に揃える為に行っています。20は適当に変えて下さい s = s & vbCrLf は改行 Format(Left(rs.Fields(0), Len(Trim(rs.Fields(0))) - 1), String(20, "@")) Trim(rs.Fields(0)) で余分なスペース削除 さらに私の環境に依存するかもしれませんが、文字の最後ににごみが付くので Left で一文字削っています。 上記モジュールを適当なコマンドボタンとか何かで Call ShowUserRosterMultipleUsers2 してあげればよいと思います。 注 提示されたリンク先では、参照設定に Microsoft ActiveX Data Objects 2.6 Library とありますが、2.6 にチェックを入れると、ADO のヘルプが見られなくなります。 (中身が真っ白なヘルプしかでてこない) なので、2.5 にチェックを入れておいた方が良さそうです。 当方Access2002 ですが、2.5でも動きました。
その他の回答 (1)
- Bickyon
- ベストアンサー率41% (42/101)
テキストボックスの名称がText1だとして、 Text1.Text = 「Debug.Printしている項目名称」 という書き方でいけるはずですよ。
お礼
有難うございます。
お礼
"-1"がポイントみたいですね、有難うございました。