ACCESSで社員の資格情報を入力するシステムを作成したのですが
以下の問題を解決できず困っています。
どうすればいいか
お力を貸して頂けないでしょうか?
■問題:メインフォームで別レコードに移動した際
サブフォーム内の連携コンボボックスを更新されない
□コンボボックス2の表示項目
1.分類別No
2.資格名ID
3.資格名
3のみを表示していますが、
1つ目のコンボボックス1の数値で
全コンボボックス2の資格名が出てしまいます。
■フォーム構成
メインフォーム内に以下を設置
1.移動ボタン
2.帳簿サブフォーム
□サブフォーム構成
レコード1 コンボボックス1 コンボボックス2
レコード2 コンボボックス1 コンボボックス2
~~
最終レコード コンボボックス1 コンボボックス2
■コントロールソース
コンボボックス1:大分類ID
コンボボックス2:資格名ID
■テーブル構成
資格名
資格名ID(主キー)
大分類ID
分類別ナンバー(大分類ごとの登録順ナンバー)
資格名
資格大分類
大分類ID(主キー
大分類名 (IT系・運転系など)
■コンボボックス2の値集合ソース(表示項目:資格名)
SELECT 資格名.資格名, 資格名.分類別No, 資格名.資格名ID
FROM 資格大分類
INNER JOIN 資格名 ON 資格大分類.資格大分類ID = 資格名.資格大分類ID
WHERE (((資格名.資格大分類ID)=[Forms]![メインフォーム]![サブフォーム]![コンボボックス1])) ORDER BY 資格名.分類別No;
------------------------------------
サブフォームに記載し効果のなかったVBAコード
’再クエリ
Private Sub Form_Current()
Dim cntrl As Control
If Not IsNull(Me![コンボボックス1]) Then
For Each cntrl In Form.Controls
If cntrl.ControlType = acComboBox Then
cntrl.Requery
End If
Next cntrl
End If
End Sub
’ソース更新
Private Sub Form_Current()
With Forms!メインフォーム名!サブフォーム名!コンボボックス2
.RowSource = .RowSource
End With
End Sub
■参考サイト
'サブフォーム内での2つのコンボボックスの連動について
'http://goo.gl/nfvxW
'~
'> コンボボックスAの更新後処理イベントに
'> Me!コンボボックスB.Requery
'>
'Me.コンボボックスB.RowSource = Me.コンボボックスB.RowSource
'数値でコンボボックス選択
'http://goo.gl/ovZ3C
'リストボックスの行を選択するときは、「Selected(n)」を使います
'http://goo.gl/RbsWX
'サブフォームの指定
' =Forms!フォーム名!サブフォームコントロール名.Form.テキストボックス名
'http://goo.gl/vKxtj
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
失礼ですがあなたのやろうとしている事は
VBAを使わなくともACCESSの基本操作
即ちテーブルデザイン、リレーションシップ設定、
フォームデザイン(ウィザード利用)で実現出来ます
よろしいでしょか
テーブルは資格、資格大分類、社員の3つのテーブルです
T資格大分類
ID 主キー(オートナンバー型)
大分類名(インデックス 重複なし)
分類別ナンバー(数値型-整数型)
T資格
ID 主キー(オートナンバー型)
資格名 (インデックス 重複なし)
大分類ID(数値型-長整数型) T資格大分類のIDにリレーションシップ
※ T資格大分類を参照
T社員
ID 主キー(オートナンバー型)
社員名
資格ID T資格のIDにリレーションシップ
※ フィールドプロパティーでT資格を参照
・リレーションシップの設定は大丈夫ですね
・T資格のデザインビューによる T資格大分類を参照
[ナビゲーションウインドウ内のT資格を右クリック]→[デザインビュー]
→[大分類ID]→[ルックアップ]
ここでは表示コントロールはテキストになっています
→[表示コントロールの入力枠の右端]→[コンボボックス]→[値集合ソースの右端]
→[T資格大分類]→[列数 2]→[列幅 0]
※ 列数 2 はT資格大分類内のIDと大分類名
※ 列幅は IDと大分類目の表示幅(Cm)をカンマ区切りで入力ですが
最後の項目幅は省略できます
この設定によりテーブルを開くと大分類IDの位置に大分類名が表示されます
同じ要領でT社員のT資格を参照
・ウイザードによるサブフォームを持つフォームの作成
このフォームはT資格大分類とT資格、T資格とT社員のフォームを2組作成します
F資格大分類、F資格分類、F社員とF資格分類サブ、F社員サブのフォームを
複数のアイテム形式で作成します
F資格大分類を例に手順を記述します。
[ナビゲーションウィンドウ内のT資格大分類にマウスカーソルを移動して]
→[作成]→[その他のフォーム]→[複数アイテム]
これで出来上がりですが、フォームのデザインビューでIDを除去します
※ 主キーはオートナンバー型式なので内部で採番してくれますし
表示されても意味不明で変更もできません
同様にF資格分類、F社員も作成しておきます。
F資格大分類のサブフォームとするF資格分類サブ、F資格分類のサブフォームとする
F社員サブ も同様に作成しますがID,資格大分類ID、資格IDも除去します
最後はF資格大分類にF資格分類サブ、F資格分類にF社員サブをセットします
F資格大分類をデザインビューで開きサブフォームツールをフォームフッターに配置すると
単票フォームに変更するとコメントがありますが素直に受け入れて出来上がった
後デザインビューで帳票フォームに変更します
No.1
- 回答日時:
質問内容を詳しく読んでませんが、サブフォームは帳票フォームなのでしょうか?
帳票フォームであれば、
一律に コンボボックス2 の条件を適用できないので、
・コンボボックスにテキストボックスを重ねる
・コンボボックスにコンボボックスを重ねる
これらの方法を取る必要があると思います。
要は、見せるものと、入力操作するものを別にして、重ねておく・・・・という事になります。
コンボボックス連携の導入(?)部分を過去回答していたので参照ください
accessの連結コンボについて
http://oshiete.goo.ne.jp/qa/7345694.html
単票フォームであれば、(参照先にも記述していますが)
単に、レコード移動時に Me.コンボボックス2.Requery すれば良さそうです。
余談)値集合ソース内でコントロールを参照する時
> 資格名.資格大分類ID=[Forms]![メインフォーム]![サブフォーム]![コンボボックス1]
この部分は、自フォームにあるコンボボックス1を参照するので
資格名.資格大分類ID=[コンボボックス1]
で動作したと思います。
後は、コンボボックス1 が選択されていない時の判別を盛り込まれるのかと・・・・
(必ず コンボボックス1 から操作するのであれば不要かも)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessの参照フィールドの列がずれてしまいます 1 2023/07/19 15:00
- Access(アクセス) Accessにインポートした複数のテーブルを表示させる方法が分かりません。 1 2023/01/30 20:22
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Visual Basic(VBA) Excel VBA ユーザーフォーム1のコンボボックスに別ブックの値を反映させたいです。 6 2023/03/21 16:12
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) VBA ComboBoxについて 2 2022/10/21 12:15
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Accessのコンボボックスに連動して、サブフォームを表示させたい。そ
Access(アクセス)
-
accessでコンボボックスとサブフォームでデータ表示したい。
その他(Microsoft Office)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
-
4
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
5
レコードを保存するコード アクセスvba
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
就職四季報
-
会社に籍だけがある時のデメリット
-
支援学校高等部の卒業資格は、...
-
調理師免許取りたいんですが、...
-
陸上競技の個人指導クラブ立ち...
-
この人最低ですよね?生きる資...
-
宅建士の資格を持っている親で...
-
この証券外務員資格は有効?
-
測量士補の資格は登録する必要...
-
ピローフィッターの資格はどこで?
-
NTTコミュニケーションズ ...
-
東急電鉄
-
ロジスティクス・オペレーショ...
-
製造業で現場では女性一人で男...
-
資格色々取ってるとイヤミな感...
-
他人に○○する資格がないという...
-
名称独占資格とはなんですか?...
-
危険物取扱資格と毒物劇物取扱...
-
電験って持っていたら、どうな...
-
アムウェイのDDとかGPとかの称...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
会社に籍だけがある時のデメリット
-
東急電鉄
-
人のお金を運用してマージンを...
-
宅建士の資格を持っている親で...
-
支援学校高等部の卒業資格は、...
-
オートクレープを扱うにあたっ...
-
就職四季報
-
資格試験の問題集ってどうやっ...
-
全建統一様式第2号 作業員名簿...
-
主任、主事、主務の上下関係、...
-
中小企業診断士の資格って株式...
-
陸上競技の個人指導クラブ立ち...
-
ユンボを私有地で使用する場合
-
調理師免許取りたいんですが、...
-
他人の資格を確認する術はあり...
-
大卒で保有資格 ITパスポート、...
-
博物館学芸員と学芸員(補)に...
-
マグロの解体ショーで、必要な...
-
AFPを放棄しても、二級FP技能...
-
行く価値のある専門学校の種類(...
おすすめ情報