• 締切済み

ACCESS フォームの作成について

DexMachinaの回答

  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.2

遅くなりましたが、No.1です。 > クエリで抽出作業が除ける分、軽くなるのですが、 こちらでの質問と合わせての推測になりますが、企業コード毎か何かで 追加クエリ(又はテーブル作成クエリ)を走らせている、ということでしょうか。 http://oshiete1.goo.ne.jp/qa4542369.html だとすると、レコードの移動(別の企業コードへの移動)の度にハードディスク に書き込みを行うする分、動作が遅くなるのは避けられないかもしれません。 (もっとも、レコードの直接編集ではなく作業テーブルで一旦編集をして、  保存ボタンを押して初めて正規テーブルに保存、という形態をとる場合、  避けようがないのですが・・・) ただ、作業テーブルに一旦バッファさせるにしても、元のテーブルで3レコード のものを、作業テーブル上で1レコードにする(保存時はその逆)、というよりは、 正規テーブル・作業テーブルとも同じレコード数で単純コピーの方が、 動作は早くなるかと思います。 ですので、一案になりますが、  a)レコード編集は、「合計が100%になるはずのものに絞り込んだレコード   のみを表示するサブフォーム」で対応   (実際の合計が100%になっているかは、フッタに設置した演算コントロール   で確認:コントロールソースは「=Sum([項目構成比])」等と指定)   ※レコードの単純コピーとすることで、追加クエリの動作を軽量化  b)レコード参照は、「レコード編集不可」を前提に、企業コード毎の比の合計   を出すクエリを作成し、それと正規テーブルとを企業コードで結合させて   合計を表示   (各企業の種別ID毎の項目ID間の比の合計についても、別途同様に対応)   ※追加クエリ/テーブル作成クエリを経ないことで、動作を軽量化 といったように、入力・編集モードと参照モードとで分けて考えてみる、という手も あるかと思います。 (システムの開発の手間は増えてしまいますが・・・)

sskj
質問者

補足

私はただ 企業_項目ID_種別ID_構成比 となっているテーブルを 企業_項目1、項目2、項目3 種別1 構成比 構成比 構成比 種別2 構成比 構成比 構成比 種別3 構成比 構成比 構成比 このようにクロス集計をしたかのごとく(表のような)入力 フォームが作りたいだけなのですが、 以下のようにただ項目ごとに分けたクエリを 結合させただけでは表示されないレコードがでてくるので (項目IDがすべて揃っている訳ではないので。) 以下のページで追加方法を聞いています。 http://oshiete1.goo.ne.jp/qa4542369.html もし他に方法があれば教えていただきたいです。 テスト1(項目ID1抽出したクエリ) テスト2(項目ID2抽出したクエリ) テスト3(項目ID3抽出したクエリ) 以下はそれを結合したもの。これをサブフォームに利用。 SELECT 調査データ(売上構成).企業コード, 調査データ(売上構成).売上構成, nz(テスト1!項目構成) AS 式1, nz(テスト2!項目構成) AS 式2, nz(テスト3!項目構成) AS 式3, ◇商品分類.分類名 FROM (((テスト1 INNER JOIN テスト2 ON (テスト1.分類ID = テスト2.分類ID) AND (テスト1.企業コード = テスト2.企業コード)) INNER JOIN テスト3 ON (テスト2.分類ID = テスト3.分類ID) AND (テスト2.企業コード = テスト3.企業コード)) INNER JOIN 調査データ(売上構成) ON (テスト3.分類ID = 調査データ(売上構成).分類ID) AND (テスト3.企業コード = 調査データ(売上構成).企業コード)) INNER JOIN ◇商品分類 ON 調査データ(売上構成).分類ID = ◇商品分類.分類ID; >クエリで抽出作業が除ける分、軽くなるのですが これはクエリで分割結合しなくとも、もともと 項目ごとにフィールドを作ればクエリでの処理がいらなくなるので 軽くなるのでは、と思ったしだいです。(正規化を無視しますが) そもそもAccessで同じグループ(同一のフィールド)にする項目で 項目同士意味を持つ場合、これほど処理が大変だとは思いませんでした。 当初は分析、集計等をレポートで出力しようかと考えていましたが到底無理なようですね。

関連するQ&A

  • Access フォームの作成 レコードの追加について

    原稿が以下のようになっている、フォームを作成したのですが 入力に手間が掛かるので良案がありましたらお願いいたします。 企業コードxxxx 店名_xxx店 住所_xxxx市xxx村 商品分類_売上構成_ウエア_シューズ_グッズ 野球ソフト_(野球ソフトの構成数値)_(野球ソフトのウエアの構成数値)_・・・ テニス_ バドミントン_ 卓球_ ゴルフ_ ・ ・ ・ 合計_ 分類ID(商品名)は15商品と決まっております 3品目もウエア、シューズ、グッズと決まっております。 原稿は商品名15品目がすべて印字済みです。 エクセルの表のような原稿だと考えていただければよいかと思います。 テーブルは正規化に則り以下のように作成しました。 売上構成テーブル 企業コード_売上構成_分類ID(商品名のID) 3品目(ウエア、シューズ、グッズ) 企業コード_3品目構成比_分類ID_項目ID(3品目のID) 店マスタテーブル 企業コード_店名_電話番号 等 現在は店マスタテーブルをメインフォームにサブフォームを 売上構成、3品目と作成しましたがこのままでは見にくいですし IDをわざわざ入力しなければなりません。(新規のデータの場合) メインフォーム(単票フォーム) サブフォーム(データシート) 一つの企業コードに対して最大15商品、それらに対して3品目は決まっているので ID入力を省くように追加ボタンの作成は出来ないのでしょうか? 企業コードを指定してクリックすると売上構成に1~15までの商品レコード追加。 企業コードを指定してクリックすると3品目項目IDを追加。 入力の並びに関しては以前ご質問したときにVBAで長いコードを 書かなければならないと解答をいただきました。 VBAは殆どさわった事ないので分かりません。(検索に使っている程度です。) 以上のことでもし何かありましたら回答お願いいたします。

  • ACCESS 入力フォーム 項目の並びについて

    テーブル1 コード_店名_項目_構成比 1_a_野球_10 1_a_テニス_20 1_a_ゴルフ_30 ・ ・ ・ テーブル2 コード_企業名 1_z このようなテーブルからフォームを作成中なのですが テーブル1、サブフォーム側の入力表示を原稿通りにしたのですが、 以下のように出来ないでしょうか? コード_店名_野球_テニス_ゴルフ

  • Access 集計について

    サブフォームでDsumを使用しIDごとの合計を表示するようにしたのですが、結果が100になるはずですが、表示が99.9999976158142や100.000002384186となってしまいます。 上と同じ現象だと思うのですが、売上から構成比率で構成金額を算出して、同じ種類の構成金額を合計したものをはじめの売上で割り構成比率に直したものを表示し、構成比全種類を合計足した場合100になるはずなのですが、94.5と計算が間違っています。 これらの原因が分かる方お願いいたします。

  • Access 分類分け クエリの作成方法について

    商品分類項目に野球 テニス サッカー等の項目が15以上あります。 その各項目にウエア シューズ グッズ 構成比率とあります。 テーブルを作成するときに構成比率 ウエア シューズ グッズ 分類IDとフィールドを作成し、項目事に分類IDを振り分けました。 野球販売高を算出するには売上高*野球構成比/100*0.5と計算します。 クエリでこれらを計算するには抽出条件で15項目のファイルを作成する必要がありますよね さらに計算する1項目につき1ファイル必要ですよね 算出するのは野球販売高だけではなく、テニス販売高、サッカー販売高 と項目事に必要です。 計算項目はこれ以外にも14あり、それらを上記の方法で算出するとファイル数が膨大になります。 Accessではクエリの数が数十個になるのは普通なのでしょうか?

  • Accessのフォームについて教えてください。

    こんばんは。アクセス入門者です。 入門書やできるシリーズなどいくつかのアクセスの本を見たのですが、 フォームについて、理解できません。 ●担当者マスタ ■客先マスタ ★コードマスタ ▲売り上げ計画マスタ ◎売上げ結果マスタ テーブルを作り、それぞれのテーブルから必要な項目を集めて、クエリを作成しました。思ったとおりの結果になったので、これを元にフォームを作成しました。 思ったとおりの結果が表示されるのですが、このフォームに入力が出来ません。できなかったので、次の方法を試しました。 ★コードマスタと▲売り上げ計画マスタのデータをサブフォームに配置しデータを追加させようと思って、あらたにフォームを作りました。やはり、思ったとおりの表示はされるのですが、追加ができないのです。それぞれのテーブルには、★コードマスタを主にそれぞれ、一対多にリレーションを組んでいます。 1つのフォームで色々なテーブルに結果を反映できるように、参照整合性の更新、削除にもチェックを入れました。 この考えは間違っているのでしょうか。 ○○マスタとあるように、それぞれ1つのテーブルに1つのフォームにしなければならないのでしょうか。 複数のテーブルから取り出したデータの更新は無理なのでしょうか。 ある程度、クエリまで完成したのにフォームでつまずいて苦しんでいます。ご解答宜しくお願い致します。

  • ACCESS教えて下さい。

    こんにちは。お願いします。 T_1 テーブル 企業名 売上合計 T_2サブ テーブル 売上内容 売上金額 仕入金額 を作成し、T_1のフォームを作成しT_2サブは、サブフォームにします。 入力していき、テーブル1の合計にサブフォーム上で入力した売上金額の合計が、計算されるようにしたいのですが・・・。 どうすれば良いでしょうか? 教えて下さい・・。

  • Access フォームを一つにまとめる

    3つの異なるフォームを作成したのですが、検索するコードは同じなので一まとめにしたいのですが作り直すしかないでしょうか? その内の二つのフォームは別の条件のサブフォームを使用しています。 一つのフォームに対して二つのサブフォーム(異なる条件)を表示するのは無理ですよね? もしくは、どれか一つのフォームで検索した場合他のフォームも連動して検索内容が表示されると助かるのですが・・・。 ttp://upload.jpn.ph/img/u11940.jpg(現状)

  • 追加クエリ

    企業コード_項目構成比_項目ID_分類ID 同じ企業コードで項目ID、1、2、3のどれかに数字がある場合 ない項目を追加したいのですが、どのようにすればよいでしょうか。 (追加する項目構成比は0) 一つの企業コードを分割して表で表すと以下のとおり。 分類ID 項目ID     1 2 3 1  30 20 50 2  30 70 ※  4  ※ 70 30 ※の部分に0を追加。

  • Access 再クエリについて

    メインフォーム(単票)に合計を表示したサブフォームと、その合計の元になり入力可能なサブフォームを作成しました。 この入力可能なサブフォームにデータを入力した場合、合計のサブフォームの表示を更新したいのですが、 入力可能なサブフォームに更新後処理で再クエリを指定したのですが、名前が正しくないとエラーが表示されます。 サブフォームに再クエリの指定はどのようにするのでしょうか? 名前:(入力可能なフォーム) ■F調査データ(売上構成)のサブフォーム 名前:合計サブフォーム ■売上構成比 店舗別合計のサブフォーム 更新したいフィールド名 売上構成の合計

  • ACCESS フォームからサブフォームのデータを更新・入力したい

    ACCESS フォームからサブフォームのデータを更新・入力したい tbl_プロジェクトというテーブルにIDとプロジェクトコード、プロジェクトの基本情報を持たせ、f_プロジェクトフォームからプロジェクトコード、件名、契約日等のデータ及び、f_テーマサブフォームにテーマを入力できるようなフォームを作成しています。フォームで入力したものをそれぞれのテーブルに保存したいのですがうまくいかない部分があります。 フォームから入力すると、tbl_プロジェクトに所属する情報は更新されます。そのtbl_プロジェクトに所属するプロジェクトコードをサブフォームのtbl_テーマのプロジェクトコードにも反映したいのですがどのようにしたらよいでしょうか? そういったことは可能でしょうか?分かりにくい説明で申し訳ないですが教えていただけると助かります。よろしくお願いします! DBの構成 【テーブル】 tbl_プロジェクト (1件1件のIDとプロジェクトコードを持つ) (フィールド:P_ID、プロジェクトコード、件名、契約日など) tbl_テーマ(プロジェクト毎に関連のあるキーワードを持つ) (フィールド:P_ID、プロジェクトコード、テーマ)←これのプロジェクトコードにtbl_プロジェクトのデータが入るようにしたい。 tbl_顧客(プロジェクトを依頼した顧客情報を持つ) 【クエリ】 q_テーマ(プロジェクト、テーマ、顧客を抽出するクエリ) 【フォーム】 f_プロジェクト (プロジェクトを1件ずつ表示・参照・新規作成するフォーム) f_テーマサブフォーム (f_プロジェクトフォームのプロジェクトコードにづきテーマを          表示・入力するサブフォーム) リレーションはP_IDをキーに一対多で作成しています。