Accessのコンボボックスに連動して、サブフォームを表示させたい。そして、そのサブフォームに新しいデータを追加したい。
コンボボックスに連動さして、サブフォームを表示させるやり方は、検索して見つける事ができました。
そのページはこちらです。
http://www.nurs.or.jp/~ppoy/access/access/acF028 …
しかし、データをサブフォームに追加しようと思うと上記リンク先のやり方では出来ませんでした。
何か方法はないでしょうか?
No.5ベストアンサー
- 回答日時:
ANo.1です
URLを参考にしていろいろやってみました。
出来ました!!! こんなの初めてです。
URLを参考にされたのであれば
・コンボボックス名は「CMB_県名」となっていますか ?
・コンボボックスの対象項目は県名のみですか ?
例では tbl参加住所サブと tbl_prf テーブルから 選択クエリーを経由して サブフォームを作ってメインフォームに都道府県のコンボボックスを配置しています。
サブフォームになるフォームは作成できますね
メインフォームは空のフォームから始めます。
1.フォームヘッダーにTbl_Pref(都道府県リスト:都道府県ID,都道府県名) のコンボボックスを配置します。
2.tbl参加住所サブを詳細欄へドラッグするとサブフォームとして配置できます。
3.サブフォームプロパティーでリンクを定義して完成です。
ただしこの場合ナビしてくれませんので直接入力することになります。
リンクの対象となる項目は同じデータ形式でなければなりません。
ありがとうございます。また、お礼が遅くなってすみません。
実は、この質問をしたあと、以前に作ったACCESSの改良をしなければいけなくなり、まだ今回の質問した分に取りかかれておりません。
回答頂いた内容は、私にはすぐ理解できるものではありません。
今やっている問題が開設次第、じっくり取りかかる予定。
そのときに、改めてお返事します。
私の勝手で申し訳ございませんが、もうしばらくお待ち頂けないでしょうか。
No.4
- 回答日時:
ANo.1です
URLを参考にしていろいろやってみました。
出来ました!!! こんなの初めてです。
URLを参考にされたのであれば
・コンボボックス名は「CMB_県名」となっていますか ?
・コンボボックスの対象項目は「都道府県」のみですか ?
No.3
- 回答日時:
【要旨】
サブフォームのレコードソースをクエリからテーブルに変更し、『県名』の表示を
テキストボックスから「tbl_prefテーブルを元にしたコンボボックス」に変更します。
(レコードソースを1つのテーブルとすることで、「2つのテーブルからなるクエリ」である
ことに起因する弊害が回避されます)
【詳細】
> 何か方法はないでしょうか?
提示サイトのサンプルに対して、サブフォームでの新規追加を可能にするのでしたら、
以下の方法が簡単かと思います。
◆サブフォーム側◆
1)「≪設定1≫」で作成されたサブフォームのレコードソースを「tbl_参加住所sub」に
差し替え
2)『県名』テキストボックスのコントロールソースを、「pref_NM」から「県No」に差し替え
3)同テキストボックスを右クリックし、「コントロールの種類の変更(H)→コンボボックス
(C)」を選択
4)変更した『県名』コンボボックスのプロパティシートで、プロパティを以下のように設定
『書式』タブ:
・列数=「2」
・列幅=「0cm;5cm」 (「5cm」の方は必要に応じて適当に変えてください)
『データ』タブ:
・値集合タイプ=「テーブル/クエリ」 (初期設定のまま)
・値集合ソース=「Select pref_ID, pref_NM From tbl_pref Order by pref_ID;」
・連結列=「1」 (初期設定のまま)
・入力チェック=「はい」 (初期値は「いいえ」ですが、自動で切り替わるはず)
※これらの設定により、「県No」の数値に対応する県名(pref_NM)が、コンボボックスに
表示されるようになります。
5)フォームを保存して閉じる
◆メインフォーム側◆
※サブフォームのレコードソースから「pref_NM」フィールドがなくなったのに伴う改修※
1)『cmb_県名』コンボボックスのプロパティを、サブフォームの『県名』コンボボックスと
同様に設定(但し、コントロールソースだけは、提示サイトと同様、空白のまま)
2)『frm_sub』サブフォームの『リンク子フィールド』を、「pref_NM」から「県No」に差し替え
3)フォームを保存して閉じる
・・・以上です。
ありがとうございます。また、お礼が遅くなってすみません。
今回の質問をした後すぐに、以前に作ったAccessの改良をしなくてはいけなくなりました。
そのため、そちらに掛かりっきりになっており、今回の検証ができておりません。
どうも、今回の質問は、私にとって予想以上に高度なため、検証するのにかなり時間が掛かりそうです。
そのため、回答頂いたないようにたいする返事等は、もう少し掛かりそうです。
このままでは、お礼が遅くなってしまうので、先にお礼を。
後日、追加の質問等があった場合は、よろしくお願いします。
No.2
- 回答日時:
追加/変更できないクエリの様ですね。
(複数の環境で採取された画面で説明されているようにみえます)
以下、変更の手順ではなく、新規作成する時の手順になります。
近い(テーブル・フォーム)構成にしています。
(同じ名前を使っていいのかわからなかったのでチョコチョコと変えてます)
「TPref」テーブル
PrefID PrefNM
1 北海道
2 青森県
3 岩手県
・・・・
「T参加住所」テーブル
an 県ID 住所 参加人数
1 1 札幌市中央区 420
2 13 千代田区 501
3 13 中央区 1005
・・・・
(「an」はオートナンバー)
(「PrefID」と「県ID」は同じ型)
サブフォームになるフォームの作成)
都道府県名はコンボボックスの表示でわかるので、サブフォームには「住所」「参加人数」を表示するものとします。
フォームウィザードで「T参加住所」テーブルを元に、「住所」「参加人数」を選択し、データシート形式で作成します。
フォーム名を「F参加住所」とし、閉じておきます。
メインフォームの作成)
フォームデザインから作成します。
フォームのプロパティ「レコードセレクタ」「移動ボタン」「区切り線」を「いいえ」に変更します。
コンボボックスを配置し、名前を「cmb県名」にします。
コンボボックスのプロパティで以下部分を変更します。
値集合タイプ: テーブル/クエリ
値集合ソース: SELECT PrefID, PrefNM FROM TPref;
列数: 2
列幅: 0cm;3cm (1列目は表示しないように)
連結列: 1
入力チェック: はい
既に出来上がっているフォーム「F参加住所」を、コンボボックスの下にドラッグ&ドロップします。
プロパティで名前を「FSUB」に変更します。
リンク親子フィールドには、手入力で記述していきます。
(右横に表示される「・・・」ボタンは使いません)
リンク親フィールドに、 cmb県名
リンク子フィールドに、 県ID
表示する大きさを調整します。
良かったらフォームを保存し、動作を確かめてみます。
この方法が不評であれば以下の様に変更しても。
(表示更新はこちらの方が速いようです)
リンク親子フィールドは空欄にします。
サブフォーム「F参加住所」のレコードソースを、コンボボックスを参照した条件記述に変更します。
SELECT * FROM T参加住所 WHERE 県ID = [Forms]![親フォーム名]![cmb県名];
また、「F参加住所」の挿入前処理で、登録に必要な「県ID」を親から持ってきます。
Private Sub Form_BeforeInsert(Cancel As Integer)
If (IsNull(Me.Parent.cmb県名)) Then
Cancel = True
Else
Me.県ID = Me.Parent.cmb県名
End If
End Sub
さらに、コンボボックスのクリック時にサブフォームを再クエリします。
Private Sub cmb県名_Click()
Me.FSUB.Form.Requery
End Sub
後は、他ページに記述されているフィルタの方法になるかと。
※
1番目のリンク親子フィールドを使っている時、
「F参加住所」の挿入前処理で、「cmb県名」をみて、編集状態を管理した方が・・・
NULL なら編集状態にさせない記述は、
Private Sub Form_BeforeInsert(Cancel As Integer)
If (IsNull(Me.Parent.cmb県名)) Then
Cancel = True
End If
End Sub
「cmb県名」が NULL でなければ、2番目の方法とは異なり、県ID は自動で設定されます。
ありがとうございます。また、お礼が遅くなってすみません。
せっかく回答頂いたのですが、検証できておりません。
ACCESSで、他の仕事ができたのでそちらに掛かりっきりになっております。
私のレベルは入門程度なので、VBAの検証となると、さらに時間が必要になります。
じっくり時間を掛けることになりそうなので、追加の質問等は、さらに数日必要になりそうです。
その時はよろしくおねがします。
No.1
- 回答日時:
>コンボボックスに連動して、サブフォームを表示させたい
コンボボックスは登録済みのデータの中から特定のデータを選ぶものです。
ここへは組み込めません。
例えば社員情報の登録フォームには所属部門の項目が必要ですこのときに利用するのがコンボボックスです。
部門登録フォームと社員登録フォームがあるとき 部門登録フォームに社員登録フォームをサブフォームとすると
上記のコンポボックスを使う必要もなくなり、部門登録フォームを開くことで部門も社員も登録できます。
サブフォームを設定するには社員のテーブルに部門テーブルの主キーの項目がありこの項目でリレーションシップが設定されている必要があります。
部門登録フォームにデザインモードでサブフォームツールを配置することから始めます
サブフォームツールは ツールバー上にあります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ハマっている「お菓子」を教えて!
この世には、おいしいお菓子がありすぎて……。 次何を食べたらいいか迷っています。 みなさんが今、ハマっている「お菓子」を教えてください!
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
メモのコツを教えてください!
メモを取るのが苦手です。 急いでメモすると内容がごちゃごちゃになってしまったり、ひどいときには全く読めない時もあります。
-
昨日見た夢を教えて下さい
たまにすごいドラマチックな夢見ること、ありませんか? 起きてからも妙に記憶に残っているような、そんな夢。
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
AccessクエリーでチェックボックスOnのものだけカウントしたい
Access(アクセス)
-
ACCESSのコンボボックスで入力した値がTABLEに反映されずに数字がでます
Access(アクセス)
-
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
-
4
ACCESS 「パラメータの入力」を消したい!!
Access(アクセス)
-
5
access サブフォームにリストを表示させたいが一件しかレコードが表示されない
Access(アクセス)
-
6
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
7
accessでコンボボックスとサブフォームでデータ表示したい。
その他(Microsoft Office)
-
8
「フォームを作成できませんでした」
Access(アクセス)
-
9
ACCSESS2013VBA フォームのレコードソースを変更する
その他(データベース)
-
10
サブフォームの切り替え方を教えてください
その他(データベース)
-
11
アクセスのレポートでレコード数をカウントしたい
その他(データベース)
-
12
新規レコード行を非表示にしたい
Access(アクセス)
-
13
アクセスでテーブルの変更内容をフォームに反映させるには?
その他(データベース)
-
14
ACCESSのフォームからデータの追加ができない
その他(データベース)
-
15
アクセスのレポートで同ページ内で2つ同じ内容を表示するには?
Access(アクセス)
-
16
Accessの条件付き書式設定で、複数の条件が一致した時の書式を設定したい
その他(Microsoft Office)
-
17
フォームを開くときに、コンボボックスの値を選択(アクセスVBA)
Visual Basic(VBA)
-
18
サブフォームの行ごとにコンボボックスの表示項目を変更する方法が知りたいです
Visual Basic(VBA)
-
19
Access チェックボックスを利用した絞込検索のクエリ記述
その他(Microsoft Office)
-
20
ACCESSでフォームを使って、テーブルを参照、データ入力、データ更新をしたいのです
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access サブフォームでの選択行...
-
(ACCESS)条件に応じて、テキ...
-
access サブフォームにリストを...
-
Access2000、これはいったい・...
-
ACCESSでサブフォームの...
-
Access2000 サブフォームのReco...
-
Access 複数フォームを...
-
ACCESSでfilterとorderbyについて
-
別MDBのフォームを起動
-
ACCSESS2013VBA フォームのレコ...
-
ACCESS サブフォーム MAX関数...
-
Accessのサブフォームから値を...
-
accessについて教えてください。
-
サブフォームが見えなくなる。
-
Accessでのフォーム表示がうま...
-
メインフォームとサブフォーム...
-
アクセスで サブフォームの表...
-
Access2003 合計値の求め方に...
-
access2007 コンボボックスでの...
-
Accessで、一覧からクリックし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access サブフォームでの選択行...
-
Access2000、これはいったい・...
-
Access 複数フォームを...
-
メインフォームとサブフォーム...
-
(ACCESS)条件に応じて、テキ...
-
Accessのサブフォームから値を...
-
ACCSESS2013VBA フォームのレコ...
-
サブフォームが見えなくなる。
-
access サブフォームにリストを...
-
サブフォームのデータを保存す...
-
Access2000 サブフォームのReco...
-
アクセスでサブフォームのレコ...
-
サブフォームでフィルタしたデ...
-
サブフォームでのダブルクリッ...
-
Accessでのフォーム表示がうま...
-
AccessのFormのみをスクリーン...
-
2回目に画面のレコードセットの...
-
Accessで、サブフォームのある...
-
初心者です。accessで請求書を...
-
Accessで、一覧からクリックし...
おすすめ情報