アプリ版:「スタンプのみでお礼する」機能のリリースについて

データベースにログオンしているユーザーを Microsoft Jet UserRoster で調べる方法
http://support.microsoft.com/kb/285822/
を調べたのですが、この方法だとDebug.Printでイミディエイト ウィンドウに値を返していますよね??
これをフォームを作成しテキストBoxなどに返す方法を教えて下さい。
宜しくお願いします。

A 回答 (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でも動きました。
    • good
    • 0
この回答へのお礼

"-1"がポイントみたいですね、有難うございました。

お礼日時:2007/05/01 00:49

テキストボックスの名称がText1だとして、



Text1.Text = 「Debug.Printしている項目名称」

という書き方でいけるはずですよ。
    • good
    • 0
この回答へのお礼

有難うございます。

お礼日時:2007/05/01 00:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!