• ベストアンサー

リストボックスで選択したデータを表示する方法

ソフトはACCESS2000です。 フォームでの入力で、リストボックスから複数選択できるようにしているのですが、このリストボックスの値集合ソースに入っている件数が多いため、下にかなりスクロールすることになります。 そこで、リストボックスの右側に別にリストボックスで選択したものを表示させられないかと思っています。 ここでお聞きしたいのは、 1. 表示エリアとしてテキストボックスを作ったのですが、テキストボックスでOKか? 2. 1でOKの場合、リストボックスで選択したものをテキストボックスに表示させる方法 3. 1でOKの場合、そのテキストボックスへ入力できなくする方法(表示ONLYにしたい) 4. 1でだめな場合、別な方法はあるか?あればその方法 です。 回答は、1~3か、1,4になるかと思います。よろしくお願いいたします。

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

  • ベストアンサー
  • peso
  • ベストアンサー率41% (40/97)
回答No.2

リストボックスのプロパティの更新後処理から[イベントプロシージャ]を 選んで、右に出る ・・・ をクリックしてください。コードはそこに記述します。 ここで「リスト0」はリストボックスの名前、「テキスト2」はテキストボッ クスの名前です。 Private Sub リスト0_AfterUpdate() Dim cnt As Integer Dim dummystr As String cnt = 0 dummystr = "" While cnt < リスト0.ItemsSelected.Count dummystr = dummystr & リスト0.ItemData(リスト0.ItemsSelected.Item(cnt)) dummystr = dummystr & "/" cnt = cnt + 1 Wend テキスト2.Value = dummystr End Sub

hinebot
質問者

補足

バッチシできました! ありがとうございました。ただ、欲を言いますと >dummystr = dummystr & "/" この辺をどうにかして、縦に並べられる(改行できる)とありがたいのですが。 何とかなりますでしょうか?

その他の回答 (3)

  • peso
  • ベストアンサー率41% (40/97)
回答No.4

VBA ではどうもテキストボックス内で改行出来ないようなので、 改行して表示したい場合はテキストボックスでなく、こちらも リストボックスにしたらどうでしょうか? リスト0が選択するリストボックス、リスト2が表示用のリストボックスです。 (前もってリスト2の値集合タイプを値リストにして下さい。) Private Sub リスト0_AfterUpdate() Dim cnt As Integer If リスト0.ItemsSelected.Count > 0 Then リスト2.RowSource = リスト0.ItemData(リスト0.ItemsSelected.Item(0)) & ";" cnt = 1 While cnt < リスト0.ItemsSelected.Count リスト2.RowSource = リスト2.RowSource & リスト0.ItemData(リスト0.ItemsSelected.Item(cnt)) & ";" cnt = cnt + 1 Wend Else リスト2.RowSource = "" End If End Sub

hinebot
質問者

お礼

ちょっと今の私には難しすぎます。今回は改行しないで表示することにしました。 わざわざありがとうございました。

回答No.3

1.の補足です。 いつのタイミングで、テキストボックスに移すかによりますが、リストの中の項目をダブルクリックで表示させる場合は、リストボックスのDbclick時に先ほどの式を追加してみてください。

hinebot
質問者

お礼

リストボックス側のプロパティですね。←こんな初歩的なことも分からずにいました。^^; ありがとうございました。

回答No.1

1. 表示エリアとしてテキストボックスを作ったのですが、テキストボックスでOKか? OKです。 2. 1でOKの場合、リストボックスで選択したものをテキストボックスに表示させる方法 表示するテキストボックスをFieldname1、リストボックスをFieldListとすると、 Me!FieldName1 = Me!FieldList でできるはずです。 3. 1でOKの場合、そのテキストボックスへ入力できなくする方法(表示ONLYにしたい) テキストボックスを使用不可、ロックすればいいと思いますが...。 簡単ですが、参考にしてください。

hinebot
質問者

補足

回答ありがとうございます。 1つだけ質問追加させてください。 2の「Me!FieldName1 = Me!FieldList」はどこに設定すれば良いですか。(式?の意味は判ります。)

関連するQ&A

  • リストボックスから選択したデーターの一つだけを取得する

    VB5.0を使っています。 WIN2000です。 MDBとVBを使っています。 まず、顧客ID・顧客氏名・電話番号  この3つが1つのデータとして横並びの文字列で、リストボックスに表示されてゆきます。 リストボックスに表示したデータを選択し、その選択したデータの”顧客ID”だけを取り出して同じフォーム内のテキストボックスにいったん出し、そこから別のフォームに飛んでその”顧客ID”を元にデータの詳細を出す、といったものを作っていますが、 今のわたしの書いてるコードだけでは、何番の顧客IDを出しても、 別のフォーム(契約入力)に行くときには同じ1番の人のデータ詳細しか出ません。 「リストボックスから選択したデーターの一つだけを取得する」 には、どのようなコードを書けばいいか、教えていただけないでしょうか・・。 リストボックス(List1)から選択してテキストボックス(Text5)に取得する際にはすでに”顧客ID”だけを取り出したいのです。 今のコードでは、顧客ID・顧客氏名・電話番号 とすべてテキストボックス(Text5)にでてきてしまいます。 Private Sub cmnd2_Click()’選択ボタンclickでリストボックスのデータを取得。 Dim ListIndex As Integer Dim SelectedIndex As Integer Text5.Text = List1.List(List1.ListIndex)'→ここでリストボックスからデータを取得しています。 End Sub

  • VBとリストボックス

    こんにちわ。 いまVB6.0sp5でリストボックスに チェックボックス付きのリストを表示し, クリックで複数選択するロジックを組んでいます。 リストに表示するデータ件数がリストボックスの高さを超えるため, 横スクロールさせる必要があります。 そこで,2列目のキャプションをクリックすると, スクロールし,選択した行以外のチェックボックスが見た目, 消えてしまいます。 なお消えたチェックボックスの箇所をクリックすると, その行のチェックボックスが選択された状態で表示されます。 2列目のキャプションをクリックしたときに,ほかの行のチェックボックスを 消さないようにしたいのですが, どうすれば良いでしょうか? 教えてください。 宜しくお願いします。

  • リストボックスで表示

    例えばhtmlページに [ID、名称(text)]、[あ、い(リストボックス)] があってID,名称を入力して(その下に3つぐらい項目があって) リストボックスで「う」、「え」 と二つあり「う」を選択したら本かパソコンを入力できるようにでき、 「え」と選択したら同じように選択できるようにはどうしたらいいですか。 なお表示されるページはリストボックスの中を変えたら表示される (同じhtml内で) 本を選択したらID,名称,本(リストボックス)であとは見えなくする(Focus)にはどうしたらいいですか もしかしてこれってjavascriptじゃないとできない?

  • accessでのリストボックス選択のイベント

    お世話になります。 度々で恐縮なのですが、以下の質問を よろしくお願いいたします。 accessのフォーム上にリストボックスとテキスト ボックスをはりつけ、リストボックスに表示されて いる行が選択されたら、その項目値をテキスト ボックスに表示させようとしています。 しかし、リストボックスのイベント(マウスボタン クリック時や開放時)を使ってみたのですが、 二度クリックしないとテキストボックスに表示され ません。 リストボックスの行が選択されたというイベントが あればいいのですが、見当たりません。 どうすれば、リストボックスで行が選択されたという イベントを捕まえることができるのかご教示お願い いたします。

  • [Access2013]リストボックスの値指定

    以下の様な事をしたいと思っていますが上手く行きません。 上手くいく方法はありますでしょうか? テーブル1 id 名称 →列名 1 みかん 2 りんご 30 トマト 上記の様なテーブルがありそれをフォーム上に配置したリストボックス(複数選択可)の値集合ソースにしています。 リストボックスから入力した値は、みかんのみを選択した場合は「1」、みかんとりんごを選択した場合は「1;2」とDBに保存しています。 (この部分は想定通りの動きをしています。) 入力用フォーム以外に、別フォームのデータシートビューで一覧表示をしています。 そこで上記リストボックス値でDBに入っている「1」や「1;2」を「みかん」や「みかん;りんご」と表示したいと思っています。 データシートビューにもリストボックスを配置し、値集合ソースは入力フォームと同じテーブル1に、コントロールソースを「1;2」が入っているフィールドにしましたが、「1」のみの場合は選択状態で表示されますが、「1;2」の場合未選択になってしまいます。 やりたいことは、ここで入力をするつもりはありませんのでただ文字列として「みかん;りんご」が出てくればいいです。 ただ、一々フォームロードなどでSQL文(+ループ処理)を書くと件数が数万件は少なくともあるのでロード時の待ちが長くなりそうです。 また、リンクテーブルマネージャで外部DBと接続しているので、テーブル定義をAccess独特のものに変更するのは難しいです。 idは自然増加に任せており桁数はまちまち、複数選択の個数も1~数十と様々です。 質問内容 ・リストボックスのコントロールソースにて複数値を指定する方法はありますか?(そもそもとして、そういうことが出来ないものなのでしょうか? また,区切りに変更、splitで配列化等はすでに行って駄目でした。) ・処理時間に影響が少ない方法で「みかん;りんご」とデータシートビューに表示する方法はありますでしょうか? ・例えばリストボックスを使用せずテキストボックス等に変更してコントロールソースでselect 名称 from テーブル1 where id in Replace("1;2",";",",")の様な事をした結果複数件出た場合は区切り文字で区切って全部出す等を可能なのでしょうか? よろしくお願いいたします。

  • リストボックスの選択状態により、フォームアイテムの表示を変えたいのですが

    たとえば、リストボックスで最初のものが選択されたら、 同じフォームにあるテキストボックスを表示させ、 リストボックスの2番目ならテキストボックスを非表示にする・・・ といった処理はできるでしょうか? なにぶん初心者なので、わかりにくいかもしれませんが 似たような処理の例でもかまいません。よろしくお願いいたします。

  • VBAコンボボックスのリスト選択について

    現在、ユーザーフォームを作成していますがコンボボックスでのリスト選択について質問します。 【質問内容】 コンボボックスを3つ作成し、Select Caseでそれぞれのリストを連動させるプログラムを組んでいます。 (1)3つとも選択した後で例えばリスト1を変更しようとするとエラーになってしまいます。リスト以外の文字列も入力できるようにしているつもりですがなぜでしょうか? (2)選択後、シートセルに転送した後、テキストボックスならば「.Text = ""」で一旦空白になりますが、コンボボックスの場合どうしたらよいのでしょうか? シートセルに転送後も選択した内容が残ってしまい結局(1)の事象に基づきエラーになってしまい連続入力ができません。 初歩的な質問で恐縮ですが、よろしくお願いいたします。

  • リストボックスの内容をテキストボックスに表示する。

    タイトルどおりなんですが、リストボックスの内容をテキストボックスに表示することが出来ません。 といっても、普通に表示することは出来たのですが、 今やっていることは、テキストボックスの中にある文章を表示しておいてカーソルがある部分にリストボックスの内容を表示する。。というものです。 (例) テキストボックスの中身が 「おはようございます。今日の天気はです。」 リストボックスの中身が 晴れ・曇り・雨 このとき「~天気は(ここにカーソルがある)です」 あるボタンを押すことで(ダブルクリックでもどちらでも良い) テキストボックスの内容が 「~天気は晴れ(リストボックスで選択したアイテム)です。」 と表示できるようにしたいのです。どうしても文末にしか表示することが出来ませんでした。長文で分かりづらい点が多々あると思いますが、 良い方法があれば教えてください。

  • JavaScriptでリストボックスを選択

    リストボックスに約100個の項目があり、いくつかの項目を選択した状態で初期表示します。 これら約100個の項目には、同じものがありません。 (name="list_box" size="10" multiple) 20~30行目くらいのものが選択されていると、初期表示では1~10行目が表示されるので、選択されていることが分かりません。 そこで、初期表示で20~30行目を表示したいと考えています。 例えば20行目の項目がvalue="aaaa"で、onload時に20行目が一番上にスクロールされている状態にしたいのですが、どのようにJavaScriptを書けばよいでしょうか? 動的なデータを想定しているので、"aaaa"は必ずしも20行目とは限りません。 どうにか、value="aaaa"がリストボックスの一番上に選択されている状態を作りたいと考えています。

  • Access2000のリストボックスでスクロール

    Access2000のリストボックスについてご質問致します。 リストボックス上にマウスポインタを持って行ったとき、スクロールを有効にする(スクロールができる)ようにすることは可能でしょうか。可能な場合、その方法を教えてください。 現状、リストボックス内の任意のデータを選択してから出ないとスクロールできません。 宜しくお願い致します。