• ベストアンサー

AccessVBAでレコード数分のチェックボックスを表示するには?

AccessVBAを勉強して間もないのですが、質問がございます。 ご教授願います。 Access2003のVBA、OSはXPを使用して開発しております。 【やりたいこと】 ・MDBよりデータを抽出し、レコード数分のチェックボックスと テキストボックスを動的に作成したい。 (レコード数の変動があるため、固定でコントロールを配置できないため、 動的に作成することを考えました) テキストボックスとMDBのデータを連結するのは可能だということは わかったのですが、チェックボックスを連結させることはできなさそうです。 何か別の方法でも構いませんので、アドバイス頂きたいです。 宜しくお願いします。

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

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.2

チェックボックスを配置して何をされたいのかわかりませんが、 そのレコードを選択した、する、用途であれば以下が参考になると思います。 (帳票フォームでのことになりますが) 非連結のチェックボックスでレコードを選択する > 動的に作成 > レコード数の変動 抽出レコード数上限がある程度決められていた場合(10とか20とか)、 その上限分のチェックボックスを作っておき、使わないものを不可視にするなど フォームのイメージ、操作のイメージを補足されたら、より具体的な回答が得られると思います。

その他の回答 (1)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

質問の内容を二通りに考えたのですが。 一つは、 >チェックボックスを連結させることはできなさそうです。 データがYesNo型ならばフォームの自動作成 を選択するとチェックボックスが作成され ます。 たとえばテーブルをtblTとします。 適当にフィールドがあるとします。 そのテーブルに新たにチェック1(YesNo型) を追加します。 次にフォームの新規作成からこのテーブルを 選択してオートフォーム表形式を選択します。 これでチェックボックスがついたフォームが できます。あとはフォームのレコードソース をクエリに変更すればできます。 という答えです。もう一つはコントロールを CreateControl関数を使ってフォームに作る という方法ですが、もし質問がこのことなら CreateContorolで調べてみてください。

関連するQ&A

  • AccessVBA メイン/サブフォームのチェックボックス

    AccessVBAを用いて、メインフォーム内にサブフォームを設置しています。 メイン、サブの両方にチェックボックスがあり、メインに4個(オプショングループ)、サブには表形式で設定しています。全て連結コントロールです。 メインフォームのレコードソースは、テーブル、サブは、テーブルの値をパラメータにしたクエリーを割り当てています。 このフォームを表示した状態で、メイン内のチェックボックスを1個~4個(任意)クリックした状態で、サブ内のチェックボックスをクリックすると、メイン内でクリックしてレとしたはずのチェックが全て外れてしまいます。 この現象を修正したいのですが方法が解りません。 どなたか教えて下さい!! ちなみに、複数の人間が入力するので、メイン、サブ共にレコードロックは「編集済みレコード」としています。 宜しくお願い致します!!

  • AccessVBAでサポートお願いします。

    こんばんわ。AccessVBA初心者です。 下記のような処理を作りたいのですがわかりません・・。 もしお分かりになる方がいらっしゃいましたらサポートをお願い致します。 「テーブルA」「テーブルB」があり、それぞれのテーブルに連結した「フォームA」「フォームB」(両方とも帳票フォーム)があります。 テーブルには幾つかのフィールドがあり、その中にチェックボックスに連結したフィールドがあります。 まず、「フォームA」を開き、任意のレコードのチェックボックスにチェックを入れ(複数選択あり)、あるコマンドボタンをクリックするとチェックの入ったレコードのみを「テーブルA」から「テーブルB」へ移動させる処理を作成したいのですがどうもうまく作れません。 「テーブルB」へ移動後は「テーブルA」から該当のレコードが削除されている必要があります。 また、テーブルBには随時データが蓄積されていく必要があります。 どなたかお分かりになる方がいらっしゃいましたらご教授願います。 その際、VBAのソースを記述頂けますと助かります。 どうぞ宜しくお願い致します。

  • Access チェックボックス項目について

    最近Accessを始めました。 YouTubeやブログなどを見ながらコツコツやっておりますが、下記のような事ができるかどうかわかりません。 現在はマクロビルダーでできる範囲で作成しております。 vbaは難しそうで少しずつ勉強中です。 やりたいこと データにチェックボックス項目が数か所あります。 このデータをレポートにしたときに、チェックボックスに判定があった項目のみ抽出させ、そのフィールド名をレポートのテキストボックスに表示させたいです。 現在、テキストボックスのコントロールソース部にチェックボックス名を打ち込んでも、判定結果の"-1"が表示されます。これをフィールド名にしたいです。 説明がわかりずらいかもしれませんが宜しくお願い致します。

  • Accessのチェックボックス

    こんにちは。AccessのVBAについてお教えください。 下記URLに質問内容の画像を配置しました。 http://kie.nu/tli フォーム1にテキストボックス1というコントロールを配置しました。テキストボックス1に名簿IDの数値を入力して、ボタン1をクリックします。 もしチェックボックス1に既にチェックが入っていたらメッセージ「チェックが既に入っています。」といったメッセージを表示したいと思います。 そこで、ボタンを押した時に、 If フォーム1!サブフォーム1!チェックボックス1.Value = -1 Then msgbox "チェックが既に入っています。" end if とやりましたが、うまく動きません。どうやれば、うまく動くようになりますかご教授頂けませんでしょうか。よろしくお願いいたします。

  • ACCESS フォームの詳細セクションのコントロールを全て非連結で作ろ

    ACCESS フォームの詳細セクションのコントロールを全て非連結で作ろうとしています。 レコードセットに連結していれば、詳細セクションにはレコード件数分の行が自動的に生成され、データのセットも勝手に行われますが、非連結なので、自分で(VBAで)制御する方法を知りたいです。 行にはテキストボックスだけでなくコマンドボタンやチェックボックスも配置します。 ・VBAで行を作ってそこのテキストボックスに任意の値をセットする方法 ・VBAで行にあるオブジェクトの値等を参照する方法 以上を教えていただけませんでしょうか? (そのようなサイトがあれば、それも教えていただきたいです)

  • 前レコードのテキストボックスと同じ値を表示させる

    環境:XP,ACCESS2003 帳票形式のフォームがあります。 次のレコードの入力に移った時、前のレコードのあるテキストボックスは、同じ内容を表示させる方法がわかりません。なお、同じ内容を表示させたいテキストボックスは連結でテーブルのフィールドをコントロールソースにしています。

  • ACCESSVBA非連結フォームからレコード検索

    お世話になっております。 ACCESS VBAに関してです。 SEQ(通し番号)、項目a,項目bの三つのフィールドを持つテーブルがあったとします。 それに対し、SEQ、項目a,項目bというラベルを張ったテキストボックスがそれぞれひとつずつ、テキストボックス計三つのフォームがあります。 SEQのテキストボックスに番号を入れコマンドボタンを押すと、テーブルのSEQに対応したレコード情報がそれぞれ項目aと項目bに入るようなイベントプロシージャを作りたいです。 ちなみにこれはとある課題として作成しているので、テキストボックスは全て非連結、ボタンのマクロは無し、プロパティからのソース設定も不可です。 テキストボックスに入力されたSEQをどうレコードセットに結びつけるのか。 引っ張ってきたレコードセットを、それぞれのテキストボックスにどうやって連携させるのか。 等がわかりません。 稚拙な質問ですが困っております。 どなたか具体的なコードとともにお教え願えないでしょうか。。

  • 選択したチェックボックスのみチェックを入れたいのですが

    Access2000で作成したフォームの チェックボックスが、どれか一つ チェックを入れると、すべてに チェックが入ってしまいます。 また、どれか一つ解除をすると、 すべてが解除されてしまいます。 デザインビューでこのフォームを 開いた時は、チェックボックスと それに関連したテキストボックスは 一レコード分(一行)だけ表示されており、 フォームビューで開いた時は、 データが増えていくにつれ、 何レコード分も表示されます。 初心者ですので、どなたか よいアドバイスをください。 宜しくお願いいたします。

  • AccessVBA フィルタとカレントレコードの移動について

    現在、下記のような構文で、「フィルタ」というテキストボックスに文字を入力し、「フィルタ実行」というボタンを押すと、フィルタがかかるように作っています。 ---------------------------------- Private Sub フィルタ実行_Click() Me.Filter = "故障処理票番号 like '" & Me!フィルタ & "'" Me.FilterOn = True End Sub ---------------------------------- ※故障処理票番号のデータ型はテキスト型。 頭にアルファベット2文字と4桁の数字からできています。例:AA0001 ※フォームは表形式。 2つ質問があります。 1)テキストボックスに入力した値で始まる文字をすべてフィルタで抽出する方法。 つまり、"AA"で始まる番号をすべて検索したい場合に、テキストボックスに"*"を入力することなく、結果が返る方法を教えてください。 2)フィルタで抽出したレコードをカレントレコードにする方法。 複数あった場合には、レコードセレクタで選択したレコードをカレントレコードとする方法を教えてください。 (ボタンを押すと、カレントレコードとなっているレコードの詳細表示(単票フォーム)に飛ぶように設定しているので、カレントレコードを移動する必要があります。ボタンは詳細セクションのそれぞれのレコードの横に表示されるよう作成しています) VBA独学&初心者なので、多分、初歩的な質問なんだと思います。どうぞよろしくお願いします!!

  • 【Access2003】レコードごとにチェックボックスをチェックをするにはどうしたら良いでしょうか?

    1フォームの中に住所録を表示するサブフォームを格納。 2サブフォームにはチェックボックスを貼り付け。「既定のビュー」をデータシートにする。 3フォームを開く。 4サブフォームの「チェックボックス」をチェックするとすべてのレコードがチェックされてしまいます。 レコードごとにチェックをするにはどうしたら良いでしょうか?

専門家に質問してみよう