• ベストアンサー

アクセスのサブデータシート名の変更について

アクセス2003を使って注文管理のデータベースを作っています。パフォーマンスをよくするためにテーブルだけのmdbとそれ以外のクエリやフォームなどのmdbに分けてファイルを作りました。 このサイトで紹介されていた、表示-プロパティ-サブデータシート名を[なし]にするというのをやってみたのですが、変更の保存はきいてくるのに、もう一度確認してみると[自動]に戻ってしまっています。何か他にも設定を変更したりしなければならないところがあるのでしょうか。どうしていいのか分からず、質問させていただきました。

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

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.3

>リレーションシップをバックエンドで組んでいますが、もしかして普通はフロントで組むべきものなのでしょうか バックエンドでリレーションしていればお互いのテーブルをリンクするとフロント側のリレーションシップは自動で読み込まれます。どちらでもレスポンス自体は変わらないと思いますが・・。 例えば1000レコードあるテーブルを開く時に一瞬でテーブルは開きますが最後のレコードを読み込むまで2秒くらいかかるのは普通ではないでしょうか。 テーブルのリンク状況にもよると思うのですが バックエンド側でツールにある解析でテーブルの正規化とパフォーマンスの最適化でチェックしてみてはいかがでしょうか。

melon100
質問者

お礼

いろいろとご回答いただきありがとうございました。テーブルの正規化とパフォーマンスの最適化でチェックしてみました。「選択されたオブジェクトをさらに改善する方法は見つかりませんでした。」と出たので、特に問題はないかと思っております。 ただ、いろいろとやってみたところ、フォームにはサブフォームを組み込んでいまして、どうもそれが少し重いようです・・なんとなく。複製を作って、メインフォームだけのものを開いてみたら若干早く開いたような気がしました。今のところ大幅に支障をきたすこともなさそうなので、しばらくはこの状態で使ってみようと思います。 ほんとうにご親切にアドバイスいただき、感謝しております。ありがとうございました。

その他の回答 (2)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

>開くまでに少し(3秒くらい)時間がかかります 例えばExcelのシートをテーブルにリンクしてフォームで表示する際でも通常は3秒もかかりません。(私の環境では現状でExcelシートに5500行以上ありかつゴミセルが2000行くらいあるシートをテーブルとしてリンクしたレコードソースのフォームでも一瞬で開きます) AccessのmdbファイルからリンクしていればExcelシートのリンクよりレスポンスが良いはずです。 リンクされたバックエンドのテーブルをテーブルオブジェクトで単純にダブルクリックして開く時も3秒くらい掛かりますでしょうか? そのテーブルが一瞬で開けばその速さと同等にフォームでも開けます。フォームで開く時に何か処理をしてから開くようになっていれば別ですが。

melon100
質問者

補足

ご回答ありがとうございます。やはり、一瞬で開くものなんですよね・・。レコード数も2000件なんてなくて、200件くらいのものなんですが。 >リンクされたバックエンドのテーブルをテーブルオブジェクトで単純にダブルクリックして開く時も3秒くらい掛かりますでしょうか? リンクテーブルを単純にダブルクリックで開いてみました。フォームと同じ3秒くらい掛かります。 リレーションシップをバックエンドで組んでいますが、もしかして普通はフロントで組むべきものなのでしょうか・・。

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

サブデータシート名を手動でサブデータシート名プロパティを設定できるのはAccess2002のみ動作可能です。 Access97など旧バージョンとAccess2002や2003で同一のリンクテーブルを使う際にリンクされたテーブルを開くと長いプロセスが取られる場合がありパフォーマンスの低下が発生するバグがある。というだけです。 Access97などのフロントエンドが共存していなければ問題ないと思いますが。 データベースが多数のリンクテーブルを使用する場合、特に古いコンピュータのパフォーマンスを減らすことができますが全てのテーブルが同じデータベースに存在する場合はこの現象は発生しませんので考慮しなくて大丈夫だと思います。

melon100
質問者

補足

ご回答ありがとうございます。よく分かりました。もう1つ伺ってもよろしいでしょうか?パフォーマンスの低下といっていいのか分かりませんが、フォーム上にボタンを配置し、クリック時に入力用のフォームを開くように設定したのですが、開くまでに少し(3秒くらい)時間がかかります。入力用フォームのレコードソースはバックエンドのテーブルからリンクさせたものを使っています。他のフォームやレポートも同じようにしているので、開くまでに3秒くらいかかります。テーブルを分割するとだいたいこんな(3秒くらい待ってから開く)感じなのでしょうか・・。