• ベストアンサー

表形式のフォームからサブフォームへ

質問タイトルどおり、アクセス2000でウィザードを使用し単票からリンクボタンでサブフォームが出ますが、表形式フォームよりレコードを指定し、コマンドボタンで実行すれば、サブフォームが出せるようにするにはどうすればよいか教えてください。トグルリンクのコードをボタンを作りコードに、コピペしましたが反応しませんでした。お願いいたします。

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

  • ベストアンサー
noname#22222
noname#22222
回答No.2

まず、テーブル設計の問題があります。 <商品マスター> ID 商品名 主材料 副材料_1 副材料_2 1  帽子   革    布 2  靴    革    布 3  ベルト  革    布    金具 という設計は、商品の種別が同一で材料数が固定的な場合のものです。 が、この場合は、サブフォームにするまでもありません。 次は、商品の種別が多岐に渡り材料数も可変なケースです。 <商品マスター> ID 商品名 1  帽子 2  靴 3  ベルト <原材料リスト> ID 原材料名 1  革 2  布 3  金具 <原材料対応表> ID・・・・・・・・・・・・・・・・数値型 商品マスター_ID・・・・・数値型 原材料リスト_ID・・・・・数値型 ID 商品マスター_ID  原材料リスト_ID 1  帽子         革 2  帽子         布 3  靴           金具 この場合、一つの商品に複数の原材料が連結しています。 よって、一般的に<原材料一覧>は表形式になります。 この場合、先の回答で述べたように、コマンドボタンを配置して対応する<原材料一覧>を参照表示するのが一般的です。 Private Sub コマンド_原材料一覧参照_Click() On Error Resume Next   DoCmd.OpenForm "原材料一覧", , , "[商品マスター_ID]=" & Me![ID] End Sub 常に、原材料一覧を表示しておいて商品マスターと平行表示するか否かは作法の問題かと思います。 *表形式にサブフォームを配置できないAccess の仕様は、このようなデータ構造に起因してのことと理解しています。 *ですから、その仕様の範囲内で様々に構想することが肝心かとも考えます。

bokujyou
質問者

お礼

お礼が遅くなり申し訳ございません。知識不足で希望したことが出来ないことはなんとなくわかりました。かわりの方法としてコマンドの書式を教えていただきましたが、意味が分かりませんでした。分かる方法ありますでしょうか?勉強したいのですが。

その他の回答 (2)

noname#22222
noname#22222
回答No.3

s_huky です。 DoCmd、OpenForm を反転表示してF1キーを押せばヘルプが表示されます。

bokujyou
質問者

お礼

マクロにたよらずVBAも勉強していきます。ありがとうございました。

noname#22222
noname#22222
回答No.1

1、表形式+サブフォームという設定は普通はあり得ないと思います。 2、コマンドボタンでサブフォームを出すというのをあり得ないと思います。 もしかした、帳票の各レコードに対応するフォームを表示させたいのでしょうか? であれば、コマンドボタンを配置する際に当該のフォームを指定するだけです。

bokujyou
質問者

補足

回答ありがとうございます。素人です。例えはAという商品の原材料としてサブフォームがある場合、単票だとコマンドボタンで原材料が 表示されます。表形式で特定の商品を指定し、サブフォームで原材料を見ることがありえないのでしょうか?お願いいたします。

関連するQ&A

  • Access2000 フォーム/サブフォームについて

    質問させていただきます。 フォーム/サブフォーム形式で画面を作っています。サブフォームは帳票形式で、複数のレコードを表示しており、各行の左にコマンドボタンを用意し、それをクリックすると、更新クエリー、削除クエリーが動くようにしています。 しかし、更新、削除クエリーとも ”0件のレコード”で処理が正しく動作しません。 ちなみに、両クエリの抽出条件は・・・ [Forms]![メインフォーム]![サブフォーム]![商品コード] しかし、フォームを使わずクエリーから実行する(パラメータに条件を手入力する)と正しく動作します。 記述ミスがないか何度も見返したのですが・・・。 「サブフォームの目的の行の商品コードと一致するデータを処理する」としたいのですが・・・。

  • Accessフォームウィザードでフォームとサブフォームを同時に作成する場合

    お世話になります。 Accessのフォームウィザードを使って フォームとサブフォームを同時に作成するとき、 サブフォームは、埋め込む形式(サブフォームがあるフォーム)とリンクされた形式(リンクされたフォーム)の2つあります。 埋め込み・リンク 両方を作成して試したみたところ 埋め込みの方は、サブフォームに新しいレコードを追加するとテーブルの方にも反映されましたが、リンクの方は、サブフォームに新しいレコードを追加してもテーブルにレコードが追加(反映)されませんでした。 どう違うのかがわかりません。 どうぞよろしくお願いいたします。

  • ACCESS サブフォームのビューが単票形式にならない

    ACCESS初心者です。 フォームの中にサブフォームを作成しました。 単票形式にしたいのですが、デザインビューでは単票形式なのに、フォームビューに切り替えると表のようになってしまいます。 サブフォームを単票形式にするにはどうしたらいいでしょうか。

  • Accessのメインフォームとサブフォームの使い方について

    Accessにてメインフォーム(単票形式)+サブフォーム(帳票形式)を使って進捗管理をするデータベースを作っており、新規にメインフォームで入力し、サブフォームで入力したデータを表示させてます。 サブフォームで更新したいレコードをクリックしたときにメインフォームでそのレコードを表示させるにはどのようにすればよろしいのでしょうか?

  • Access メインフォーム サブフォームにて

    お世話になります。 Accessにて メインフォームにコマンドボタンを置いて、クリックするとサブフォームのレコードが 次に行くようにしたいのですが、 コマンドボタン クリック Forms![メインフォーム]![サブフォーム名].Form!フィールド名.SetFocus DoCmd.GoToRecord , , acNext メインフォームとサブフォームのレコードが次に行ってしまいます。 サブフォームだけ次のレコードに行くには、どのようにすれば良いのでしょうか。 分かる方教えて下さい。 宜しくお願いします。

  • access2000表形式フォームから単票形式フォームで開きなおす方法

    access2000でDBをつくっています 表形式フォームのNoフィールドをダブルクリックして、クリックしたレコードのみを 単票形式フォームで開く。ということをしたいのですが、 表形式フォームのほうに Private Sub   No_DblClick(Cancel As Integer) DoCmd.OpenForm "単票形式", acNormal, , [No] = Me![No].Value, , acDialog End Sub とVBAを書いているのですが、 Noの値が3のところをクリックしてもNo=1のレコードが先頭に開けてしまい、 望むような結果が得られません。 本3,4冊調べてもよくわからないので、 アドバイスお願いします。

  • サブフォームにした方がいいのか親フォームがいいのか

    単票・帳票フォームで使う場合、 サブフォームにした方がいいのか親フォームのままのほうがいいのか。 アクセスでフォームでデータを表示する際に、 フォームのデータシートビューの場合は、 フォームヘッダーにコントロールを置けないから、 データシートをサブフォームとして、親フォームに乗せてコントロールを設置しますが、 単票・帳票フォームの場合は、フォームヘッダーにコントロールが置けますよね。 その場合でもデータシートビューのように サブフォームにした方が良いのでしょうか? そもそもどういう時にサブフォームにした方が良いのかわかりません テーブルやクエリのデータをフォームとしてデータシートビューで表したい上、 コントロールも設置したい時にサブフォームにするべきで、 それ以外(単票・帳票フォーム)はフォームのまま使うべきでしょうか? 添付の画像は、 帳票フォームをサブフォームに載せずにコマンドボタンなどを置いたバージョンです。

  • サブフォームをリクエリするには?

    アクセスのフォームにはサブフォームがあり、 親フォームの上にあるコマンドボタンで、テーブルに対してアクションクエリでレコードの削除やレコードの更新を行います。 サブフォームにはそのテーブルをソースとしたデータを表示させているのですが、 親フォームの上にあるコマンドボタンのイベントの最後に、 Me.Controls("サブフォーム").Requery を入れても、フォームのデータが#Deletedになります。 Me.Requery でも、サブフォームのデータは#Deletedになってしまいます。 フォームを開きなおしたり、並べ替えをすればデータが表示されますが コマンドボタン押下後にイベントを実行し終わったら、サブフォームのデータも更新されたデータを表示するさせるには どうすればいいでしょうか?

  • ACCESS2000のフォームについて

    フォーム(←単票形式の)のデザインビューで、ツールボックスから、コマンドボタンウィザードを使い、コマンドボタンを作りましたが、ウィザードの最後のボタン名を指定するところで、漢字変換ができず、困っています。 いつもひらがなにしか入力が出来ないのですが、ここで直接漢字入力にするにはどういう処置をすればいいですか。 それから、追加の質問ですが、 作ったコマンドボタン(←レコード削除用)で、レコードを削除しようとしたところ、「リレーションシップが設定されたレコードが、テーブルにあるため、レコードの削除や変更を行えません。」と、エラーメッセージが表示されます。 レコードをフォームから削除するにはどうすればいいですか。 (※無理にしたいわけではないが、そういう命令も勉強の一環でして見たいのです。) 宜しくお願いします。

  • Access2002でのフォーム形式

    Access2002でフォームウィザードを使って作成したフォームの形式(表形式など)を、作成後に変更(単票形式などに)することは可能なのでしょうか? ちょっと勉強を始めたらドンドコドンドコ不思議に思うことが出てきてしまって・・・。 よろしくお願いします。