![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
VBAなんですが、最悪VBでも構いません。
コーディングにより、Access中のレコードの数だけ、ラベルやコマンドボタンをフォーム上に作成したいのですが、どうすればいいのかわかりません。
レコードの数なので多数になる可能性が高いので、配列にしようと思っているのですが、コマンドボタンも含まれているため、そのクリックイベントも作らなければならないのです。(イベント内容は同じ。違いはインデックス番号の認識のみ)
しかもVBAだとコントロールの配列が作れないので困っています。どうすればいいでしょうか?
コントロールの追加にcreatecontrol関数を使うとフォーム名にcreateformを使わないといけないらしく、フォームを新しく作らないといけないみたいでイベントまでは埋め込めそうにありません(既存のフォーム名でするとデザインがどうとかこうとかでエラーが出ます)
No.1ベストアンサー
- 回答日時:
興味を持ったのでちょっとやってみました
フォームはデザインモードで開いておかないと駄目でした
(別の方法もあると思うんですが)
レコードの数だけ とありましたので
テーブルに作成するコントロールのリストが作ってあるのかな と思い
テーブルの先頭から終端までループしてます。
テーブルの"コントロールタイプ"は数値型で設定しました。
acCommandButton のような定数はそのまま使えなかったです。
そのクリックイベントも ~ <イベントの作り方は どうしても分かりませんでした。
DoCmd.OpenForm "フォーム1", acDesign
Dim db As database
Dim rs As Recordset
Dim Ctrl As Control
Set db = CurrentDb
Set rs = db.OpenRecordset("テーブル1", dbReadOnly)
Do Until rs.EOF = True
Set Ctrl = CreateControl("フォーム1", rs![コントロールタイプ])
Ctrl.Name = rs![コントロール名]
Set Ctrl = Nothing
rs.MoveNext
Loop
DoCmd.Close acForm, "フォーム1", acSaveYes
以下 参考までに
acLabel ラベル 100
acRectangle 四角形コントロール 101
acLine 直線コントロール 102
acImage イメージ コントロール 103
acCommandButton コマンド ボタン 104
acOptionButton オプション ボタン 105
acCheckBox チェック ボックス 106
acOptionGroup オプション グループ 107
acBoundObjectFrame 連結オブジェクト フレーム 108
acTextBox テキスト ボックス 109
acListBox リスト ボックス 110
acComboBox コンボ ボックス 111
acSubform サブフォーム 112
acObjectFrame 非連結オブジェクト フレーム 114
acPage Pageオブジェクト 124
acPageBreak 改ページ コントロール 118
acCustomControl ActiveX コントロール 119
acToggleButton トグル ボタン 122
acTabCtl タブ コントロール 123
>テーブルに作成するコントロールのリストが作ってあるのかなと思い
そんなものはないです。コントロールタイプは全てコマンドボタンおんりー結構です。
とりあえずコーディングでフォームを作ってコントロールを配置してイベントを埋め込むところまでは成功しました。
結局set myFrm = CreateFormを使ってフォームの新規作成をしました。これを使わないとフォームのメソッドが使用できないばかりか、モジュールセットもできないのでCreateEventproc関数が使えないため、非常に不便なので、やめました。既存のフォームを使うという方法はもう忘れてください。
あとはコントロールの配列をコーディングでどうやって作るかです。VBAはコントロールの配列が作れないので、何か良い方法はないでしょうか?
例え作れたとしてもクリックイベントでそのコマンドのインデックス番号をどうやって取得するのかが大問題です。
いっそのことコマンドの名前を数字にして後でそのコントロール名とかイベント名を参照してインデックス番号を取得・・・なんてできるのでしょうか?たしか既存の(目に見えて形となっている)(オブジェクト名を持っている)コントロールのメソッドを使用するのはかなり不可能だったような気がします。なのでタグもイベント名も拾えない気がします。
イベントが発生したときに自分がどのオブジェクトから呼ばれているイベントか知る方法ってありますか?あるいは上から何番目のコマンド(縦に同じコマンドがズラッと並んでいるイメージ)から呼ばれているかをイベント内部から知る方法ってありますか?
VBなら同じイベント内容のコマンドを全て配列にしてまとめてクリックイベントにしてそのIndexを見ればプロシージャ1つで済みますが、VBAで似たような方法をする方法を教えてください。
No.2
- 回答日時:
こんにちはー
ぶっちゃけ、難しくて私の手には負えません
擬似コントロール配列という手法があるようです。
URL貼っておきますね。
参考URL:http://www.h3.dion.ne.jp/~sakatsu/Breakthrough_P …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Access(アクセス) accessについて(超初心者です) 1 2023/02/11 11:18
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) Accessにインポートした複数のテーブルを表示させる方法が分かりません。 1 2023/01/30 20:22
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- Access(アクセス) アクセス 意図せずサブプロシージャを移動してしまうのを止めたい 1 2022/09/02 09:19
- Excel(エクセル) Excel VBAについてです。 少しだけ知識はあるのですが、 うまくいかなかったので 質問させてい 3 2022/09/13 18:40
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カメラスクロールするのを動画...
-
エクセル・VBA CheckBoxのオブ...
-
エクセルVBAでオプションボタン...
-
vb.netで画面のコントロールId...
-
C#で角が丸いテキストボックス
-
ExcelVBAでListViewが使用できない
-
コンボボックスの文字によるif...
-
コントロールを移動できない
-
ビープ音鳴らし続けたい。
-
変数をコントロール型で使用す...
-
もしフォームヘッダーにコント...
-
excelのリストボックスで選択し...
-
ExcelVBAのコントロールの種類...
-
アクセス特有の書き方?
-
間違えて配置してしまったコン...
-
chr関数の呼び出しで「プロ...
-
VB6でのバーコード印字について
-
NumericUpDownコントロールに数...
-
Excel VBA で Richtextboxを使...
-
Labelコントロールの(左右)余...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル・VBA CheckBoxのオブ...
-
カメラスクロールするのを動画...
-
vb.netで画面のコントロールId...
-
C#,vb.netで業務用アプリ開発と...
-
EXCELでactivexコントロールを...
-
フォーム上の現在アクティブな...
-
ExcelVBAでListViewが使用できない
-
コンボボックスの文字によるif...
-
C#で角が丸いテキストボックス
-
エクセルVBAでオプションボタン...
-
ユーザーフォームで動的(Me.Con...
-
VBAのフォームでTextBoxがいっ...
-
アクセス特有の書き方?
-
エクセル コントロールツール...
-
間違えて配置してしまったコン...
-
変数をコントロール型で使用す...
-
(VBA)スピンボタンの大量...
-
Labelコントロールの(左右)余...
-
excelのリストボックスで選択し...
-
Excel VBA で Richtextboxを使...
おすすめ情報