• ベストアンサー

ACCESS 複数で開くとサイズが大きくなり遅くなる

ACCESSで作ったMDBです。 誰も使っていなければ、2GBくらいのサイズなのですが、複数人(多いときでは5,6人)でアクセスし、開いていると、20GBくらいのサイズにふくれています。 これは何故なのでしょうか。 そのためか、VBAで作ったデータ更新の処理がとても遅くなっています。 よろしくお願いします。

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

  • ベストアンサー
  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.1

詳細の話は、判らないですが・・・ 一人で使用しても、Accessの場合テンポラリをテーブルで作るみたいで、ファイルサイズが、その度に大きくなります 実際どの様な構成にされています? フォーム等のインターフェイス部と、テーブル等のデータ部を分離して、インターフェイス部を、それぞれにコピーして使用すれば、複数で開いても影響は小さいのと、経験で言えば、Accessが破損する場合、フォーム、レポートが多いので、このような構成にしてあります 私の場合、 インターフェイス部へ ・クエリ ・フォーム ・レポート ・モジュール ・テーブル(個別設定用のテーブル) データ部を ・テーブル(個別設定用のテーブル除く) と、分離してあり、リンクでテーブルを接続してあります そのうちデータ部は、PostgreSQL、MySQLに移したいのは山々なんですが、時間が無いですね^^; あまり参考にならないかも知れませんが、複数で使用するAccessは、別けてある事が多いみたいです

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Accessでリンクテーブルのパス変更

    Accessで処理mdbとデータmdbに分けて、データmdbをリンクテーブルとして読み込んでいるのですが、データmdbのパスが変わったとき、処理mdbでデータmdbのパスを変更しなければなりません。 それが、面倒なので、手軽に変更できるように作っているのですが、「MSysObjects」の「Database」を書き換えるようと、VBAでADODB処理をしているのですが、アップデートすると「更新可能なクエリであることが必要です。」となり、書き換えることが出来ません。 strSQL = "SELECT * FROM MSysObjects;" ~ data.open strSQL ~ data("Database") = NewDatabase data.Update といった感じの処理です。因みに環境はAccess2000です。 何か、リンクテーブルを自動で書き換える簡単な方法は無いものでしょうか。

  • 複数のAccess mdbでの処理の共通化

    現在複数のAccess mdbの改造を行っております。 Accessのバージョンは2000(確定),稼動OSはWindows2000(予定)です。 さて、複数のmdbで同じような処理を行っているので共通化したいのですがそのやり方がわかりません。 1個のmdbの中だけだったら標準モジュールをプロシジャー化すれば良いのですが、複数のmdbでプロシジャーの共有はできるのでしょうか。 或いは目的(同じような処理を一個所に纏め保守性を向上させる)を達成する為の方法だったら何でも良いですので 御回答宜しくお願いします。

  • アクセスのデータをエクセルで編集したい

    アクセスのデータをエクセルで開き、データを更新したいのですが、 可能でしょうか? VBAやマクロを使えば可能ですが、視覚的に操作したいので、エクセル からmdbへリンクを作成するようなイメージです。

  • 最適化後のサイズがあんまり変わりません。

    こんにちは。 先日、Accessにてリンクテーブルの削除、dbの最適化、リンクの張りなおしについて質問させていただいたものです。 結局、リンクテーブルを削除しなくても最適化ができましたので、とりあえずOKなのですが、最適化後のdb のサイズについて質問があります。 最適化の方法としては、メニューにあるボタンを押したら、 1.元データ(a.mdbとします)のバックアップ(bk.mdbとします)を取る(filecopyで行っています) 2.a.mdbの最適化を行います(最適化してできたdb をwk.mdbとします)。 3.wk.mdbをa.mdb元データの名前でコピーします。 4.wk.mdbを削除します。 実験のために、元のa.mdbのサイズを大きくして、上記の処理を行ってみたのですが、dbのサイズがほんのちょっとしか小さくなっていません。何回やっても同じです。 しかし、直接a.mdbを開いて、ツール→データベースユーティリティ→最適化 を行うと、びっくりするほどサイズが小さくなるのです。 これでは、最適化をメニューにつける意味がありません。しかし、ユーザーがa.mdbを直接開くことは避けたいので、解決策をご存知の方がいましたら、回答よろしくお願いします。 ちなみに、データ用のDTとそれ以外のプログラムのDTは分けています。Access2000、ADOで使用したいです。

  • AccessのデータをSQLServerで

    SQLServerについては知識がないので、基本的な質問かもしれませんがお願いします。 現在、社内のシステムはAccess2003で通しています。 中小企業なのでクライアント数も15(全クライアントにAccessをインストール済み)ほどで、データ量は全部のmdbファイルで2GB程度です。 ただAccessではスタンドアロンになりがちで、複数のクライアントからの同時アクセスによるデータ更新ができにくい状況です。これについては、本来はやりたくないのですがmdbファイルを複数に分散したりして逃げています。(できれば1つのmdbファイルが理想です) また、mdbファイルの大きさやクライアントのPCスペックにもよると思いますが、Accessでの操作性がよくない(重い)です。 このような状況から考えて、自社のWindowsServer2003にSQLServer2005を導入の予定でいます。 そこで一番聞きたい質問なのですが、 「Accessで構築したmdbファイルを、SQLServerにデータを移すのみで問題はないのでしょうか」 どこへ移すのかとか、それができたとして、クライアントは今後どこから自社のシステムへアクセスしたらよいのかはまだ知識がないためまったくわかりません。。 ただ、SQLServerについての基本的なことはおさえておくつもりです。 なお、SQLServer2005を導入するのならば、無償版(Express)があるそうなのでそれで様子を見て、いろいろ不足するようでしたら上位版を考えています。

  • Accessのファイルサイズ縮小について

    Access 2000で作成したmdbファイルを Access 2013環境で使用しています。 ・テーブルのみのmdbファイル(1)があります。  mdbファイル(1)の中には、テーブルオブジェクトが1つあり、フィールドが1つ、  フィールドサイズは255です。レコード件数は、36万5000件程度あります。 ・フォームやクエリ、マクロ、mdbファイル(1)と  リンクテーブルでつないでいるmdbファイル(2)があります。 mdbファイル(1)のファイルサイズが、90MBに達しており mdbファイル(2)を開いたり、何か処理させるのを遅くしているのではないか と思っています。 他の方の質問をチェックしましたが、結果は 最適化について  オプション→現在のデータベース→閉じるときに最適化する→チェックON済み  手動で最適化する→変化なし。 MDBをMDEに変換する  Access 2013では、バージョンが違うので変換できないようです。  accdb形式に変換→accde形式に変換しましたが、変化なし  (そもそも、ファイル(1)はテーブルのみで、マクロやプロシージャは無いので、  意味が無かったかも) となっており、対処法が見つからなくて困っています。 何か良い案はないでしょうか。

  • 複数同時アクセスついて

    おはようございます。 PHPでブラウザ上でデータベースの更新するページを作成しました。 今、問題があって、Aさんがデータを更新するため、作業をしていて、その間にBさんも作業をするためページを開きました。 Bさんが作業終了してデータを更新して、その後Aさんが更新するといった形で複数同時アクセス時にデータの書き換えでこまっています。 こういった場合、編集ページを排他処理にしたいのですがどのようなものがありますでしょうか? すみませんがお願い致します。 参考になるページもあればお願い致します。

    • ベストアンサー
    • PHP
  • Access2003VBA・MDBファイルの容量をVBAで知りたいです。

    Access2003VBAで質問です。 (1)VBA実行中(自分自身)のMDBファイルの容量を、VBAで知ることはできますか? CSVファイルを読み込む処理ですが、1.9ギガくらいで、処理をとめたいのです。 (2)VBA実行中(自分自身)のMDBファイルのディレクトリを取得する方法を教えて下さい。 (3)自分自身のMDBファイルは、最適化できませんよね。 DAOで、閉じてるMDBファイルをコピーするしかないのかな?

  • 処理終了後に実行したmdbファイルが削除できない

    すいません。教えてください。 更新処理を行うmdbファイルを作成しました。 正常に処理が終了した場合、その実行したmdbファイルごと削除するようにしたいのですが、方法はありますか? ACCESS2003 VBAにて作成しいました。 よろしくお願いします。

  • 複数同時にアクセスファイルが開けない

    1つのPCでいくつかアクセスのファイルを開いているのですが、 とあるアクセスファイル(aaa.mdb)を開こうとすると 画像のような画面が2回表示されます。 そしてaaa.mdbのテーブルを開こうとしても画像の画面が表示されます。 すべてのアクセスファイルを閉じてaaa.mdbを再度開いてみたら 通常通り開けました。 なんだったのでしょうか? アクセスは複数のファイルを同時に開けないのですか? バージョンは2007です。ご回答よろしくお願いします。

専門家に質問してみよう