• ベストアンサー

サブフォームがはめ込んであると、起動するのに時間が

アクセスです。 フォームにコマンドボタンとかおいてある場合は、一瞬で開くのですが フォームにサブフォームが置いてあると、その親フォームを開く時に1秒くらいかかります。 もしかしてサブフォームがはめ込んであると、起動するのに時間がかかるのですか? そのサブフォームはテーブルに紐づいています。

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

  • ベストアンサー
回答No.1

>そのサブフォームはテーブルに紐づいています。 だけでは分からんよねぇ…。 サブフォームだけを単体で開いた場合の速度は速いのですかね。 演算コントロールで定義域集計関数を多用しているとか メインとサブフォームの「何か」の関係で発生しているとか 色々有りそうですが 現状では、車のボンネットも開けないで故障個所を診断してくれと 修理屋さんに頼んでいるのと似ています。 サブフォームを埋め込んでいるからと言って 必ず遅くなる ということは有りません。

gwsedtlyebqgt
質問者

お礼

ありがとうございました。

その他の回答 (1)

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.2

>サブフォームがはめ込んであると、起動するのに時間がかかるのですか? 別の原因でしょう >そのサブフォームはテーブルに紐づいています。 失礼ですが、少し表現がおかしいです。 メインフォームのメインテーブルとサブフォームのサブテーブルに紐づいているということですね この紐はメインテーブルの主キーとサブテーブルの同じ形式のフィールドですね (主キーには一般にオートナンバー型ですがこれは長整数型です) このようにすると1対Nのリレーションが確立します。 サブテーブルののフィールドのプロパティーのインデックスをハイ(重複あり)にします これでも時間がかかる場合は別に原因があります。 自分はメインテーブル3000レコード。サブテーブル5000レコードを運用していますが ファイルを開いた後最初にフォームを開くときは一呼吸待ちますが 2度目にフォームを開くときは瞬時に開きます

gwsedtlyebqgt
質問者

お礼

ありがとうございました。

関連するQ&A

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

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

  • サブフォームの並べ替えをしたい

    どうしても出来ないのでお知恵をお貸しください。 【1】「オートフォーム:データーシート」で、テーブル1を紐付けて、 子フォームを作成しました。 【2】「デザインビュー」で親フォームを作り、 その子フォームをドロップアンドドラッグしてサブフォームにしました。 【3】親フォームにコマンドボタンを一つ設置しました。 (図参照) 【4】コマンドボタンのイベントプロシージャーに Private Sub コマンド1_Click() Forms("親").Controls("子").Controls("入金").SetFocus DoCmd.RunCommand acCmdSortAscending '昇順並べ替え End Sub とコードを書きました。 そして、親フォームを開き、コマンドボタンを押すと、 実行時エラー2046 「コマンドアクション"昇順で並べ替え" は無効です」 となってしまいます。 しかし、図のように 子フォームのデータシート上のどれかの値にフォーカスがある状態で 標準モジュールに書き写した Sub test1() Forms("親").Controls("子").Controls("取引日").SetFocus DoCmd.RunCommand acCmdSortAscending '昇順並べ替え End Sub を実行すると 問題なく並び替えがされます。 RunCommand を使わなくてもいいので 「コマンドボタンを押したら、サブフォームの並び替えをする」には どうすればいいのでしょうか。 ご教授よろしくお願い致します。(アクセス2003)

  • サブフォームのビューを切り替えたい

    親フォーム(フォーム1)にサブフォームとして、 テーブルをソースとするサブフォーム(テーブル1のサブフォーム)を配置しました。 親フォームからサブフォームのビューを変更したいのですが どうすればいいか教えてください。 親フォームのコマンドボタンにはそれぞれ Private Sub 単票フォームへ切り替え_Click() Me.Controls("テーブル1のサブフォーム").Form.DefaultView = 1 '帳票フォーム End Sub Private Sub 帳票フォームへ切り替え_Click() Me.Controls("テーブル1のサブフォーム").Form.DefaultView = 0 '単票フォーム End Sub としたのですが、 実行すると 実行時エラー 2136 "このプロパティを設定するには、フォームまたはレポートをデザインビューで開きます"。 となってしまいます。 Private Sub 帳票フォームへ切り替え_Click() DoCmd.SelectObject acForm, "テーブル1のサブフォーム" DoCmd.RunCommand acCmdFormView End Sub にしたところ、 実行時エラー 2489 “オブジェクト テーブル1が開いていません、” になります。 サブフォームに埋め込んでいて親フォームを開いていても 開いてない事になるのですね。 フォームビューの時に、切り替える事は不可能なのでしょうか? 帳票ビュー表示用フォーム、 単票ビュー表示用フォーム を作るしかないのでしょうか?

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

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

  • サブフォームの表示の種類をVBAで操作したい

    こんばんは。 アクセスのフォームの中にサブフォームを入れていて コマンドボタンを押すたびに そのサブフォームを フォームビューか、 データシートビューか、 ピボットテーブルビューかに切り替えたいのですが VBAで可能でしょうか? 宜しくお願い致します。

  • 親フォームからサブフォームのレコードソースを設定

    親フォームからサブフォームのレコードソースを設定するには? フォーム1にテーブル1をドロップアンドドラッグして、「テーブル1のサブフォーム」を作成しました。 フォーム1にあるコマンドボタンから「テーブル1のサブフォーム」のRecordSourceを設定する方法を教えてください。 「テーブル1のサブフォーム」からなら Private Sub Form_Load() Me.RecordSource = "" End Sub とできるのですが、 やりたいことはフォーム1からのイベントなので 「テーブル1のサブフォーム」からのイベントは使えません。 だからってフォーム1の Private Sub コマンド2_Click() Me.テーブル1のサブフォーム.RecordSource = "テーブル1のサブフォーム" End Sub とするとコンパイルエラーになります。 良い方法があれば教えてください。アドバイスよろしくお願いします。

  • アクセス サブフォーム条件付き書式の反映が若干遅い

    アクセスのフォームの中のサブフォーム条件付き書式を設定しています。 サブフォームにはテーブルのデータが紐づいております。 フォームを開いたと同時に条件付き書式に色付けがサブフォームに行われるようにしたいのですが フォームを開いただけだと色が付かず、サブフォームのどこかのレコードをクリックしたら色が付きます。 もしくは、フォーム上でマウスを動かすと色が付きます。 デザインビューでサブフォームに条件付き書式を設定しているので サブフォームを開くと同時に色が付くし、 サブフォーム単独で開くと、すぐ色が付きます。 親フォームを開いたと同時にサブフォームの条件付き書式を反映させる方法はありますか? アクセス2010です。 ご教授よろしくお願いします。

  • アクセス サブフォームの使い方

    フォームにテキストボックスとコマンドボタンサブフォームが1つづつありま す。 やりたいことは、テキストボックスに入力した条件でコマンドボタンを押すと サブフォームに結果が表示されるというものです。 ID 分類 名称 1  花  バラ 2  花  ユリ 3  昆虫 カブトムシ とテーブルがあった場合、 テキストボックスに 花 を入力すると サブフォームに バラとユリが 表示されるというものです。(実際にはフィールド数はもっとあります。) コマンドボタンにクエリの実行を登録し、サブフォームはクエリをベースに作 成しました。 コマンドボタンをクリックするとクエリの結果が表示され(当たり前ですね) サブフォームは白紙のままです。 ファームのデザインビューをクリックし、再度フォームを表示すると結果は反 映されます。 この、クエリの結果を表示せず、かつサブフォームに結果を表示させる方法を 教えてください。

  • アクセスのサブフォーム

    よろしく、お願いします。 アクセスのサブフォームをVBAでテーブルに登録する方法を教えてください。 フォームからメインテーブルとサブテーブルへ、ボタン一つで同時に登録したいのです。 よろしく、お願いします。

  • サブフォームをリクエリしたい

    メインフォームのコマンドボタンを押下するとvbaを使ってテーブルのデータを更新します。 メインフォームの中にはサブフォームがあり、 そのサブフォームとテーブルがリンクしています。 サブフォームにはテーブルのデータが表示されており、 メインフォームのコマンドボタン押下→テーブルデータ更新 がされると、全て#Deletedという文字が表示されます。 なので、 Private Sub cmd_データ更新_Click() Call データ更新 Me.Controls("Fサブ").Form.Requery End Sub としたのですが、 「実行時エラー’2465’:指定した式で参照されている’Fサブ’フィールドが見つかりません。」 が発生します。 Me.Controls("Fサブ").Requery これにしても同じでした。

専門家に質問してみよう