• 締切済み

アクセス+vb 複数コントロールに同じ処理する場合

アクセス+VBです。 空のフォームにラベルを複数ランダムに配置します。(多ければ500個くらい) そのラベルにクリックイベントを発生させて処理させる場合、ラベルの数だけイベント処理を書かなくてはいけませんよね。 もし、処理内容が同じならひとつの処理記述ですませる方法はないですか。 例えば学校の教室だとすれば、ラベルを机の代わりにしてフォームに配置します。 ラベル(机)をクリックしたら、その生徒のデータが表示される。 良い方法はないでしょうか?

みんなの回答

回答No.3

はじめましてmarumaru_a_wといいます。 Accessのイベントには、Fromの中で作成されたPublic Functionを呼び出すことが出来ます。 VBのIndexみたいなことしたい場合は =Label_Click(処理したいラベルの番号) これをクリックイベントの部分に入れるとクリックした時に制御できると思います。 Public Function Label_Click(Index AS Integer)  処理内容 End Function

situmonnsya
質問者

お礼

ご回答 ありがとうございます。 参考にさせて頂きました。

noname#22222
noname#22222
回答No.2

フレームコントロールを利用します。 ・フレームを配置。 ・オプションボタンをラベルの下へ。 ・レベルの背景を不透明に。 ・フレームの見出しや枠を消します。 これで、事実上、フォームのラベルコントロールを配置したことと見た目は同じになります。 で、同時に Private Sub フレーム_Click()   処理コード End Sub が、可能になります。

situmonnsya
質問者

お礼

なんと、そういう手があったのですね。 試してみたら、いい感じです。 ありがとうございます。

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.1

コントロール配列を使いましょう。

situmonnsya
質問者

お礼

ご回答ありがとうございます。 アクセスはVBAで、コントロール配列は利用できませんでした。

関連するQ&A

  • VB2008でユーザーコントロールのイベントについて

    VB2008でユーザーコントロールのイベントについて 作成したユーザーコントロールを(1)フォームに配置した時のみ実行される (2)フォームを実行した時のみ実行される それぞれ処理を分けたいのですが、適切なイベントが見つかりません。 何か区分けのできる方法はあるのでしょうか? 何方か教えていただけませんか

  • VBのイベント処理について

    お世話になります。 VB6.0のイベント処理について教えてください。 VB.NETでは、イベント処理のメソッド(VBだとプロシージャですか) のシグニチャのおしりに Handles Button1.Click という記述がされているので、このメソッドはButton1のクリックという イベントが発生したときに行われる処理だなと見当がつくのですが、 VB6.0ではその記述をしないのが一般的とみました。 してそのときに、このメソッドがButton1のクリック時のイベントだと いうのは、どのように判断されるのですか?メソッド名が Button1_Click みたいに勝手につけられるので、それで判断されるのですか?という ことはメソッド名を変えたらそのメソッドはButton1のクリック時の イベント処理メソッドではなくなってしまうのですか? よろしくご教授ください。

  • VB2008によるコントロール配列

    VB初心者でただ今勉強中です。VB2008です。 Form1の中にたくさん(100個くらい)の星(ビットマップデータ)をちりばめ、その星がランダムに点いたり消えたりするプログラムを作成しようとしています。 フォームにPictureBoxを配置して(星.bmp)とします。 その星を100個フォーム上にちりばめたいのですがPictureBoxを100個も置くのはムダな労力です。 それで配列を使いたいのですが、PictureBoxを1つだけフォームに配置してそれをコード上で配列として使う方法がわかりません。 いろいろ調べてみたのですが初心者にはわからない説明ばっかりで途方に暮れています。

  • VB6からの移行したいけど、VB.NETのコントロール配列は?

    VB6ではフォーム上にボタンコントロールとかを配列で作成できクリックされた時にはボタンイベントのインデックス値によってどのボタンを押されたが判断できて各処理を記述できていましたが、VB.NETでは同じようにはできないようです。オブジェクト指向的?にはこちらがいいのでしょうが、どうも面倒くさくなったなぁというイメージしかわかず、なぜこの方がいいのかという納得いく書籍とかも見つけることができていません。 どなたか、ご教授頂きたいのですがよろしくお願いします。参考になる書籍やWEBとかもありましたらお教えいただければ幸いです。

  • VB.Net フォームのKeyPressイベント

    お世話になります。 日夜 VB.Net でAccess ADPファイルで作ったシステムのリメイクをしております、駆け出しの者でございます。 フォームのイベントでKeyPressイベントがありますが、 Me.ActiveControl.BackColor = Color.LavenderBlush この記述で、フォーム上に配置されているテキストボックなどの背景色を変えられるのですが、マウスで、各コントロールをクリックしても背景色が変わりません。 フォームのClick関係、Mouse関係のイベントで同じ記述をしても、フォームに配置してあるコントロールには適応されないようで、どうしたものかと思っております。(どこか見逃しているのか?!) マウスでテキストボックスなどのコントロールをクリックした時にそのコントロールの背景色を変えるには、例えば100個のテキストボックスがあった場合には、100個のClickイベントに背景色を変えるコードを記述する必要があるのでしょうか?(それは大変だと思うのですが・・・) もし、フォームのマウス、クリックのイベントで ActiveControl の背景色が変更できるイベントや、その他、やり方があるようでしたら、何卒ご紹介いただけますようよろしくお願いいたします。

  • VB6 ユーザコントロールでクリックイベント

    コンボボックスにclickイベントを書いたのち(この段階ではprivate) このコントロールをユーザコントロールにしました。 フォーム上に上記のユーザコントロールを配置したところ クリックイベントが発生しません クリックイベントを発生させるには 何か特殊な記述が必要ですか?(例えばオーバライドとか) どうすればクリックイベントを発生させられますか

  • VB2005でのWithEventsについて

    お世話になります、当方現在データベースアプリをVB2005proで作成しているのですが、VB6→VB2005への更新です。 VB6の時は複数プログラムで作成したため、あえて、アップグレードウィザードを使用せずに作成しております(デザインも変更したい為) それで、今回質問させて頂きたいのは、複数のフォームに貼り付けたボタンイベントを同じ処理で分岐できないかどうか教えて頂きたいのです。 具体的にはフォームにボタンを5個ほど用意して。フォームのクリックイベントでF1キーが押されたらButton1_Clickイベント、F2キーが押されたらButton2_Clickイベント などのショートカット機能を実装したいのです。 VB6の場合は共有クラスにWithEventsでForm型を宣言して、Load時にロード元のフォームをWithEventsのフォーム型にセットすればイベントを認識してくれたと思うのですが。同じことを.NETで行っても、イベントをハンドルしてくれませんでした。 .NETでは各フォームイベント毎に記述するしかないのでしょうか? 初心者の質問で申し訳ありませんが、何卒よろしくお願いいたします。

  • VBでフォームにコントロールを動的に挿入するにはどうすればよいでしょう

    VBでフォームにコントロールを動的に挿入するにはどうすればよいでしょうか。 いつもお世話になります。 動的にコントロールを配置する方法は分かっています。 しかし、新規に配置したいコントロールのサイズ分、すでに配置されているコントロールの位置をずらして、コントロールを配置(要するに挿入)する方法がわかりません。 何かよい方法があれば教えて頂けませんでしょうか。 使用しているVBのバージョンは2010です。 宜しくお願いします。

  • VB.NET 2003 でグラフィックの表示。

    VB.NETをはじめたばかりです。 プログラムのスタート時、まずフォーム内でGraphicsオブジェクトを取得して表示させたいのですが、グラフィックに関する事項が表示しません。 一方、同じコード記述をButtonイベント内に記述し、ボタンONではグラフィック部分の描画が可能です。 フォーム内の記述だけでスタート時にグラフィックを表示するにはどのようにすればよろしいのでしょうか。 なお、フォーム内のテキスト表示、ラベルなどはイベントの発生なしでも表示します。

  • VB.NETでのコントロールの初期化

    VB.NETでのコントロールの初期化 VBの練習を始めたのですが、各コントロールの使用するプロパティを初期化する際の処理が、下記の記述であっているか判断して頂きたく思い、質問させていただきました。 判断して頂きたい処理は、ピクチャーボックスで画像を表示させる際の記述です。  PictureBox1.Image = Nothing のように記述しているのですが、これで合っているでしょうか? また、上記のもの以外でも、初期化の記述で知っているものがありましたら、教えていただけると幸いです。 ちなみに私はラベルのテキストを初期化する際の処理として  Label1.Text = String.Empty のような、記述をしています。 以上です。宜しくお願い致します。

専門家に質問してみよう