• ベストアンサー

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

アクセス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秒くらい待ってから開く)感じなのでしょうか・・。

関連するQ&A

  • Access97をAccess2002にするには

    Access97で作成したmdb(オブジェクトは、テーブル(リンクテーブル有り)、クエリ、フォーム、レポート、マクロ(AutoExecのみ)、モジュールを使用)をAccess2002へ移行させようと思うのですが、単純に[ツール]→[データベースユーティリティ]→[データベースの変換]で良いものでしょうか。 もし、何か気をつけなければならないこと、やらなければならないこと等、または変換方法等をご教授いただけないでしょうか。

  • アクセスでのデータ管理について(長文です。)

    アクセス初心者です。 これからデータの入力、管理、帳票をアクセスで構築しようと思っているのですが、アクセスはデータを入力した時点でデータが保存されてしまうので過去のデータが残りません。またデータの変更及び共有をうまくやりたいのですがよい方法がわかりません。 今回構築したいデータベースは、 1.過去の記録がすぐわかるようにしたい。(更新前のデータがわかるようにしたい。) 2.データの変更及び共有を簡略化したい。(A社で変更したデータをB社のデータベースにいれこみたい。) 【データベースの概略イメージ】  A社      B社 データベース1 データベース2(1と同じもの) テーブル1 → テーブル1 テーブル2 → テーブル2 テーブル3 → テーブル3 クエリ1    クエリ1 クエリ2    クエリ2 フォーム1   フォーム1 フォーム2   フォーム2 *リレーションあり *A社でテーブル1の内容を変更して、B社のテーブル1を新しいものに置き換えたい。 (本を読むとリレーションが崩れると書いてありました。) *B社で変更してA社に戻すこともある。 テーブル1 項目 ID 100 住所 あああ 氏名 △△様 電話番号 111-1111 *例えば、ID100のデータの氏名を変更するとき、変更前がどうだったかわかるようにしたい。(1月時点では△△様、2月時点では□□様とか) 誰かアクセスの操作方法に詳しい方がおられましたら、よい方法又はアクセスに関する詳しい本とかサイト等教えて下さい。よろしくお願いいたします。

  • アクセスをネットワークでリンクさせると非常に遅い!?

    自分のマシンから、ネットワーク環境にあるデータベースファイル.mdbのテーブルへリンクさせる機能のあるアクセスファイルを作ったのですが、開くのに非常に時間がかかってしまいます。 それで、仕方なくテーブルもクエリーもフォームも1つにまとめたデータベースファイル.mdbをネットワーク環境において多人数で共有させています。 これっていいのでしょうか? よろしくお願いします。

  • ACCESS2000でフォームを保存するとアクセス自体が閉じてしまう

    ACCESS2000でフォームを保存するとアクセス自体が閉じてしまう という現象がいきなり起こり始め、最近は頻繁に発生するようになってしまいました。 mdbを起動し、フォームの修正箇所を確認すると、保存ができていない状態です。 新規に空のmdbを作成し、テーブル、クエリ、フォーム等をインポートしてみましたが結果は同じで 本当に困っています。 どなたかアドバイスをいただけませんでしょうか? OSはxpです 宜しくお願いいたします

  • ACCESSの「データベース構造の解析」のファイル保存について

    MS ACCESS2003の初心者です。他人が書いたMDBファイルをテキストで管理したいと考えています。 「ツール」→「解析」→「データベース構造の解析」からフォーム、クエリ、レポートなどの詳細(プロパティーなど)を印刷かファイル保存することが辿り着きました。 だが、選択した項目をまとめて1ファイルに保存することではなくて、簡単に各々名前(例:フォーム名)を付けて保存することをご存知な方はいませんか? フォーム、クエリ、レポートの数がとても多いので、手作業では気が遠くなりそうです。何かいい方法をご存知な方がいれば、教えてください。 よろしくお願いいたします。

  • アクセスVBAでテーブル作成クエリを作れる?

    アクセス97です。 テーブル作成クエリで 他のmdbに テーブルを作成してるのですが 他のmdbのフルパスが固定でなく可変です。 テーブル作成クエリの 他のデータベース名を VBAで変更出来るでしょうか? もしくは VBAでテーブル作成クエリを 作成出来るでしょうか?

  • アクセスでテーブルの変更内容をフォームに反映させるには?

    アクセス超初心者です。 テーブルを作って、その後フォームを作りました。 フォームの内容が足らなかった為、テーブルに戻って編集しました。 しかし、テーブルの変更内容がフォームに反映されません。 顧客管理のデータベースを作りたかったのですが。。 例えば、テーブルで「氏名」という項目が足らなかったとして、追加したとします。それを保存します。その後、フォームの顧客管理を開けても、反映されません。編集後、どうすればフォームに反映されるのでしょうか。。(T_T) 宜しくお願いします。

  • access2010 データベースウインドウ

    ACCESS2010で、(ACCESS2003のときの)データベースウインドウを 見ようとすると、ウインドウではなくて画面の左端にテーブルやクエリー などのいずれかが表示された状態になります。 これを、ACCESS2003の時のデータベースウインドウのように、 一つのウインドウとして自由に移動させるにはどうすればいいでしょうか。 大きいフォームの設計がしずらく感じてしまいます。 同じことでプロパティの場合も教えていただけると助かります。

  • ACCESS SELECTで始まるフィールド

    ACCESS2003です。 他部署の人が使用していたACCESSの改変を依頼されました。 フォーム部を変更したいとのことだったので、 フォームのフィードリストを確認しながら、参照先に該当するクエリを変更していました。 あるフォームのフィールドリストを確認したら、「SELECT」で始まるフィールドがありました。 しかし、どこを探しても「SELECT」で始まるクエリもテーブルは存在しません。 どこから参照されているのかがわかりません。 プロパティのレコードソースから変更して保存しようとしたら、上書きできずクエリ名を求められてしまいます。 追加を行うには、どこから行えばいいのでしょうか?

  • Accessです。テーブルのフィールド名変更

    初心者です。お願いいたします。 仕事で、Accessを使っています。 素人なりにそれらしいものを作って使っていたのですが、困ったことに元ととなるテーブルのフィールド名を変更しなくてはならなくなりました。 そのテーブルに関係するクエリーをたくさん作っている場合、フィールド名を変更することによって関係するクエリーも一つ一つ変更していかなくてはならないのでしょうか? テーブルのフィールド名を変更すると、関係するクエリーのフィールド名も自動的に更新できるという方法はあるのでしょうか? 初心者でスイマセン。よろしくお願いします。

専門家に質問してみよう