• ベストアンサー

ACCESSについて教えて下さい。

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

質問者が選んだベストアンサー

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.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でも動きました。

AKI78
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Bickyon
  • ベストアンサー率41% (42/101)
回答No.1

テキストボックスの名称がText1だとして、 Text1.Text = 「Debug.Printしている項目名称」 という書き方でいけるはずですよ。

AKI78
質問者

お礼

有難うございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excel VBA テキストボックスの値の取得

    テキストボックスの値が必要となり参照しようと思い、検索したところdebug.printにある3つの方法がヒットし、試して見ましたが、エラーになります。 テキストボックスの名前にはどれもtxtの文字を含んでいます。 Sub ShapeValue() Dim Shp As Shape For Each Shp In ActiveSheet.Shapes If InStr(Shp.Name, "txt") <> 0 Then Debug.Print Shp.TextFrame.Characters.Text 'オブジェクトは、このプロパティまたはメソッドをサポートしていません。 Debug.Print Shp.TextFrame2.TextRange.Text '指定された値は境界を超えています。 Debug.Print Shp.ShapeRange.TextFrame.Characters.Text 'オブジェクトは、このプロパティまたはメソッドをサポートしていません End If Next Shp End Sub どうすれば取得できるでしょうか?

  • Accessの印刷部数設定について教えて下さい

    Access2007のレポート印刷で部数を設定する方法について教えてください。 コンボボックスやテキストボックスを使わず、メッセージボックスに"印刷部数を入力して下さい"とメッセージが出て、部数を入力するという方法にしたいのですが、わかりません。 イメージとしては http://support.microsoft.com/kb/879856/ja のようなかんじで、ラベル位置の代わりに部数に入力できるようにしたいと考えております。 よろしくお願いします。

  • Access2003で質問

    (1)テーブルで「氏名」、「住所」のデータベースを作成。 (2)フォームで「氏名」、「住所」のテキストボックスを作成 (3) (2)で作ったフォームで(1)で作ったデータベースを表示させたい のですが、(2)のテキストボックスで「#Name?」と表示されてしまいます。 (1)で作ったデータベースを(2)で作成したテキストボックスに表示させ方を教えてください。

  • Accessフォームに値を自動挿入したいんです

    どなたか教えてください! フォームであるテキストボックスに値を入力すると、他のテキストボックスに自動的に値が表示されることって出来ますか?また、どうやって設定するのでしょうか? 私が作成したいのは以下のとおりです。 「国別」データベースと「メール受信履歴」データベースを作成します。 「国別」データベースには「国名」「州名(アジア州やヨーロッパ州など)」の2つのフィールドがあります。 また、「メール受信履歴」データベースには「受信日付」「メールアドレス」「国名」「州名」の4つのフィールドがあります。「国名」には「コンボボックス」を使用して「国別」データベースの「国別」を参照するように設定しています。 そして、フォームで「国別」テキストボックスと「州別」テキストボックスを作成し、「国別」テキストボックスを選択したら自動的に「州別」テキストボックスに州名を表示したいのです。 説明が分かりづらいと思いますがよろしくお願いします<(_ _)>

  • Access2003起動時の警告文をなくしたい

    Accessファイルを開く際に、以下の警告文が出て煩わしいです。 これを回避する方法はありませんでしょうか。 ──────────────────────────── セキュリティ警告:安全でない式がブロックされていません。 安全でない式をブロックしますか? ──────────────────────────── 1から自分で作ったファイルなので、安全でない式はないはずなので、これを「いいえ」で抜けると、さらに以下の文が出てきます。 ──────────────────────────── セキュリティ警告: 安全でない式がブロックされていません。 安全でない式をブロックするには、Microsoft Jet 4.0 Service Pack 8 以降がインストールされている必要があります。最新のバージョンの Jet 4.0 を入手するには http://windowsupdate.microsoft.com に移動してください。 ──────────────────────────── これで、WindowsUPDATEで最新の状態までアップデートしたのですが、それでもまたエラーが出ます。 それで調べて、以下のページをたどりました。 http://support.microsoft.com/kb/834420/ja ↓ http://support.microsoft.com/kb/829558/JA/ Microsoft Windows XP を実行しているコンピュータの場合 Windows XP を実行しているコンピュータに Jet 4.0 Service Pack 8 をインストールするには、WindowsXP-KB829558-x86-JPN.exe を使用します。 WindowsXP-KB829558-x86-JPN.exe ↓ これを実行したら「このシステムのServicePackが、適用しようとしている更新より新しいバージョンであることが検出されました。この更新をインストールする必要はありません。」となってしまいました。 ちなみに、jetのバージョンを調べたら、4.0.9511.0でした。 これ以上どうしたらいいのかわかりません。 ご指導、よろしくお願い致します。

  • アクセスのマクロ 改行したい

    マクロの アクション:メッセージボックス メッセージで、 一行目 二行目 と表示させるにはどうすればいいでしょうか? メッセージに ・一行目vbCrLf二行目 ・一行目"&vbCrLf&二行目 ・"一行目"&vbCrLf&"二行目" としても、そのままの値が表示されるだけでした。 ググったのですが、 http://support.microsoft.com/kb/281670/ja のように、VBAの改行の方法しかヒットしません。 ご回答よろしくお願いします。

  • Microsoft Access2003/2007

    Microsoft Access2003/2007についてです。 Microsoft Access2003/2007のフォームで、Tabキーによるテキストボックス間移動順序の変更は可能でしょうか?可能でしたら方法を教えてください

  • PCの事で、

    PCの事で、 すいません、せっかく教えていただいたのですが、 http://support.microsoft.com/kb/318011/ja  で、 ドメイン コンピュータで新しいユーザー プロファイルを作成する って、どういうことですか? Administrator または管理者権限を持つユーザーとしてログオンします。 これも、わかりません。 だれか、上のサイトの事をわかりやすくおしえていただけないでしょうか! お願いします

  • Accessフォームパラメータについて

    Access2000(2002のライセンスがあったのでアップグレード予定)で、プログラムを作ることになりました。 フォームAに、テキストボックスで文字を入力させます。 その文字をキーにして、データベースを検索し、 その情報をフォームBに上記キーをヘッダにテキストボックスで表示し、 複数業の表形式で、データを全て表示・スクロールしたいと思っています。 その時に、どのようにしてこのキーを利用していけば実現できるのか、イメージできないで困っています。 フォームAのテキストの値をキーにデータベースを読み、 該当するレコードを、全て、表形式のフォームBに表示する。 同時に、フォームAのテキストの値であるキーはヘッダ部に表示し、値が変更され、更新ボタンを押せば、検索しなおして、表示しなおす。 表示された明細には、変更ボタンを儲けて、 変更フォームで表示して更新させて、終わったら画面が表形式に戻ってくる。 こんな機能なのですが・・・。 パラメータ値であるAの値の受け渡しがうまくいかず困っていますので、どうしたら、実現できるか教えてくださいませ。 ややこしくてすみません。 アドバイス宜しくお願いします。

  • エクセルのユーザーフォームについて

    エクセルマクロのユーザーフォームのテキストボックスに セルの値を表示する方法で質問です。 ユーザーフォームを表示するとその時点での セルの値はテキストボックスに表示されているのですが ユーザーフォームを表示したまま 別のブックのセルを選んだ際に そのセルの内容がテキストボックスに表示されるようにしたいです。 ボタンや、なにかをするわけではなく 自分で任意のセルを選択したら、という事です。 ユーザーフォームには selectionchange などがないのでどうすれば良いかわかりません。 宜しくお願いします。

専門家に質問してみよう