

アクセスを勉強初めて10日経過したシロウトものです。
今顧客管理データベースを作成しています。いろいろ学んで来ましたが、従業員のメンテフォーム作成でつまずいています。
社員No 配属 従業員名 のデーブルからフォーム、サブフォームを作成しました。フォームで入力し、サブフォームで従業員の一覧ができるようにしたいのです。ウィザード通りに作成するとサブフォームではフォームにある社員Noの行しか現れません。何かの見本では、ズラーと社員一覧になっており、サブフォームのどこかをクリックすると上のフォームの画面がサブフォームと連動して切り替わります。この仕組みがどうなっているのか、どうか教えて下さい。よろしくお願いします。

No.5ベストアンサー
- 回答日時:
失礼しました。
アクセスをはじめたばかりでいらっしゃるのを忘れていました。
これは、「コードビルド」を選択して記述します。VBAといわれるプログラム言語です。
どこに書いてもいいのですが、ここではIDという名前のテキストボックスがあって、これをダブルクリックするとそのレコードを親フォームに表示する、という風に動作させようということで、書いたコードです。
1 Private Sub ID_DblClick(Cancel As Integer)
2 Dim TargetID As Long
3 TargetID = Me![ID]
4 Me.Parent![ID].SetFocus
5 DoCmd.FindRecord TargetID
6 End Sub
以下、一行ずつ解説しますので、ヘルプなども参照しながら応用してみてください。
1はいいですね。あるコントロール(テキストボックスなどの総称)のプロパティ-イベント-ダブルクリック時-コード で開くと、自動的にこの行が生成されます。この場合は、IDというコントロールのダブルクリックイベントで走るコードだよ、という意味の名前です。
2。変数を宣言します。
3。Meというのは、今の場合で言えば、現在、選択しているレコードです。現在選択しているレコードの、IDというコントロールの値を参照するときに、Me![ID] と書きます。
4。親レコードのテキストボックスIDにフォーカスを移します。フォーカスされた場所というのは、この場合、点滅しているカーソルのあるところです。ダブルクリックするのはサブフォームのコントロールですから、この時点では、サブフォームにフォーカスされています。
サブフォームから、親フォームのコントロールを示すときに、Me.Parent![コントロール名] と書くのです。
今は、フォーカスをそのコントロールに移したいので(次の行を実行させる準備)、 Me.Parent![コントロール名].SetFocus と書きます。
5.フォーカスのある項目が、変数TargetID の内容と同じレコードを探します。
ここでは、IDという名のコントロールを仮定しましたが、多分これを、社員Noに読み替えていただければよいかな?
ポイントは、5行目の DoCmd.FindRecord です。その前は、これを意図どおりに実行させる準備です。
ヘルプや本をご覧になる際に、FindRecord から攻略してみてください。
ありがとうございます!できました!感動です。丁寧に教えて頂きありがとうございました。
実は「もういいかな・・・」とあきらめていたところでした。
ほんとうに感謝します。他にも応用ができそうです。

No.4
- 回答日時:
>サブフォームのどこかをクリックすると上のフォームの画面がサブフォームと連動して切り替わります.
動作確認していないのですが、間違っていたらごめん。
Private Sub ID_DblClick(Cancel As Integer)
Dim TargetID As Long
TargetID = Me![ID]
Me.Parent![ID].SetFocus
DoCmd.FindRecord TargetID
End Sub
仮にIDという名前の欄があるとしました。
ここをダブルクリックすると、親フォームがそのIDを持つレコードに飛びます(飛ぶはず・・・・・・)。
なお、データーシートフォームは、表計算ソフトの表みたいに見えるフォーム。帳票フォームは、好きなデザインで、複数のレコードを下に羅列していくフォームです。
回答ありがとうございます。
アクセスを勉強して間もない人間なので大変恐縮ですが可能でしたらもう少し教えてください。
上の構文をプロパティのダブルクリックのところにIDをそれぞれの名前に変えて入力すればいいのでしょうか??
それともマクロビルドかコードビルドですか???
簡単なマクロは覚えました。値の代入れやレコード、コントロールの移動くらいです・・・。
No.3
- 回答日時:
>実はこれはあるプロの方が作ったフリーソフトにあった請求・見積ソフトで使われていたひとつのフォー>ムであり、そのデザインを見まねで勉強しながら作成している途中なのです。
これはダイジェストを帳票で表示させて
その中の一つを選ぶと詳細フォームを表示させるという
よくやるインタフェースの一つです
別フォームでやることの方が多いのですが
メイン・サブの形でこしらえてあるだけです
そういうわけですから形はメイン・サブでもリンクをさせてはいけません
No.2
- 回答日時:
テーブルが一つしかないのにメイン・サブフォームを使うの?
メインサブフォームを使うのは
親子関係のテーブル、見出しと詳細の関係のテーブル、1対1の関係のテーブル
等2つ以上のテーブルを関係づけて表示させたい場合です
本当はなにがしたいの?
回答ありがとうございます。外出していたので返答が遅くなりました。回答いただいていたのにすみません。
1つのテーブルで入力用フォームとして単純に利用することでなんら問題はありません。ただ今回やりたかったのは、新規の社員をどんどん入力していく(メインフォーム側)のと別に、既存の社員の修正を下のサブフォームの一覧から見てカーソルを持っていってクリックすると、上のメインフォームがその社員に切り替わり、修正が出来るような仕組みです。実はこれはあるプロの方が作ったフリーソフトにあった請求・見積ソフトで使われていたひとつのフォームであり、そのデザインを見まねで勉強しながら作成している途中なのです。そんな重要なことでないのは理解しているのですが・・・。
No.1
- 回答日時:
サブフォームではフォームにある社員Noの行しか現れません。
何かの見本では、ズラーと社員一覧になっており、
-------------------------------------------------------
ウイザードで 「社員No」を結合キーにしたからですね
したがって 当該の社員No だけしかでません
例えば当該の配属組織の社員Noをズラーと出したければ
配属を 結合キーにします
-------------------------------------------------------
また
サブフォーム側の規定のビューは「単票」ではなくて
「帳票フォーム」で。
--------------------------------------------------------
ただし基本的なことを言えば
親フォームに社員Noが有るということは そもそも その社員No
だけに対してなんらかの情報を入力するということですからね
ズラーと複数でること自体、理屈に合いません
回答ありがとうございます。
残念ながらうまくいきませんでした・・・。
・結合キーを「社員No」から「配属」に変更(これはサブフォームのフィールドリンクの親と子のリンクの事ですよね??)しましたら、配属だけがズラズラでるだけでした。
・サブフォームは帳票フォーム(データフォームと理解していいのでしょうか?)になっています。
サブフォームのフィールドリンクの設定で親と子の”リンクなし”にすると社員No、配属、社員名がズラズラと出て理想のイメージになりました。しかし、サブフォーム上で任意のセルを選択した時に、上のフォームと連動し情報が切り替わればいいのですが、そうならないのです。何らかの命令式を入れるといいのでしょうか・・・?
でもおっしゃる通り、こだわってやるまでのことではないですね・・・。もっといろいろ勉強していきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessに関する質問です。 クエリーQ出勤 からフォームF出勤を作成 フォームは分割フォームで作 1 2023/05/26 08:57
- Access(アクセス) Accessの参照フィールドの列がずれてしまいます 1 2023/07/19 15:00
- Access(アクセス) マイクロソフト アクセス2021のフォームビュー作成でレイアウトを帳票形式から単票形式にあとから変更 1 2023/03/03 10:56
- Google Drive Googleフォームについて(至急) 2 2022/06/28 21:45
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- その他(プログラミング・Web制作) 入力フォームへ、データを自動的に入力するプログラム。どうやって作る? 4 2023/01/16 10:24
- Visual Basic(VBA) VB.net フォーム 親子 1 2022/07/04 19:00
- Access(アクセス) アクセス 意図せずサブプロシージャを移動してしまうのを止めたい 1 2022/09/02 09:19
- Access(アクセス) Accessで独自メニューバーまたはリボンを作成したい 1 2022/12/02 14:31
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessで、サブフォームのある...
-
Access サブフォームでの選択行...
-
Access 複数フォームを...
-
ACCESS合計の出し方
-
アクセスでフォームとサブフォ...
-
【Access】複数フォームを閉じ...
-
SQLサーバーを外部から接続させ...
-
アクセス2003 - レコード追...
-
(ACCESS)条件に応じて、テキ...
-
★Access★2つのサブフォー...
-
保存されない理由は?accessvba
-
アクセスでサブフォームのレコ...
-
access2000のサブフォーム同士...
-
複数項目でのサブフォームとの...
-
アクセスで サブフォームの表...
-
Accessで、一覧からクリックし...
-
サブフォームが見えなくなる。
-
ACCESSでのデータ削除について
-
アクセスVBA画面のスクロールバー
-
レコード→CD
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access サブフォームでの選択行...
-
Access 複数フォームを...
-
(ACCESS)条件に応じて、テキ...
-
Access2000、これはいったい・...
-
access サブフォームにリストを...
-
サブフォームが見えなくなる。
-
Accessでサブフォームの中の並...
-
サブフォームでのダブルクリッ...
-
AccessのFormのみをスクリーン...
-
ACCSESS2013VBA フォームのレコ...
-
Accessのサブフォームから値を...
-
初心者です。accessで請求書を...
-
Access2000 サブフォームのReco...
-
2回目に画面のレコードセットの...
-
ACCESSでfilterとorderbyについて
-
Accessでのフォーム表示がうま...
-
別MDBのフォームを起動
-
Accessで、一覧からクリックし...
-
サブフォームのデータを保存す...
-
googleフォームでインストール...
おすすめ情報