• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ACCESSのデータ数について)

ACCESSのデータ数について

このQ&Aのポイント
  • データベースサイズが大きい場合、ACCESSではマクロの登録ができないエラーが発生することがあります。
  • レコード数が10,000を越える場合は、ACCESSを使用しない方が良いという記事もあります。
  • 質問者はデータベースのサイズがおおよそ100Mで、レコード数は6万以上あると述べています。

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

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

月並みですが 最適化してみる。 新規MDBに全てインポート。 サービスパックが最新のものが当たっているか確認。 モジュール名に全角文字が使われている。 フィールド名などに予約語が使われている。 http://support.microsoft.com/default.aspx?scid=kb;ja;286335 関数の引数を省略している。 どこかで暗黙の型変換が起きている。 とかでしょうか? エラーメッセージは「メモリ不足です」だけですか? http://support.microsoft.com/search/default.aspx?catalog=LCID%3D1041&spid=2509&query=%E3%83%A1%E3%83%A2%E3%83%AA+%E4%B8%8D%E8%B6%B3&adv=&ast=1%2C2%2C3&mode=a&cat=False&kt=ALL&title=false&mdt=&pwt=False&res=20 当方Access2002なので再現できないかもしれませんが そのモジュールのコードをアップされては? たかだか10万レコードでエラーとはならないと思います。 それなりに時間は掛かりますけど、100万レコードでも動いています。 なお、11/21 の質問はそろそろ・・・

prairie-gentian
質問者

お礼

>新規MDBに全てインポート 出来ました!なぜかサイズも半分に減っています。ありがとうございます<(_ _)> データベースとかSQLとかほとんど知らないまま、必要があってACCESS VBAにチャレンジしてしまい、汗顔の至りです。 >そのモジュールのコードをアップされては? ソースのコアの部分が人から頂戴したもので、公開できませんでした。申し訳ありません。 >たかだか10万レコードでエラーとはならないと思います http://www.accessclub.jp/bbs6/0006/das1448.html に「経験上、1万レコードを超えたらAccess使わないようにしてます」という書き込みがありました。違う次元の話かも知れませんが・・・。 >なお、11/21 の質問はそろそろ・・・ はい、先ほど締め切りいたしました。 ご教示ありがとうございました。今後ともよろしくお願いします。

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

関連するQ&A

  • ExcelからAccessデータを検索するマクロ

    ExcelのA1セルにある値をAccessのデータベース (ファイル名:abc.mdb、テーブル名:Tbl_a)の フィールド1から検索し、対応するレコードの フィールド2の値をExcelのB1セルに書き込む というマクロはどのように書けばよいのでしょうか? Excel, Accessともに2000です。 よろしくご教授お願いします。

  • アクセス 最大ファイルサイズおよび最大レコード数

    アクセス初心者です。 windowsME Access2000を使用しています。 現在システム作成中です。 アクセスにはサイズの制限のようなものはあるのでしょうか? 例えば、エクセルでは1レコードのフィールド数や、レコード件数に制限がありますよね。 アクセスでも1レコードのフィールド数は255でしょうが、レコード数についてはいろいろ調べても特に記述が無くてわかりません。  (1)レコード数に制限はあるのか?  (2)1ファイルのサイズに制限はあるのか?  (3)データベース全体に制限はあるのか? などです。もちろん、1つのレコードの長さに関係はあると思いますが。ちなみに現在のシステムはデータなしの状態で、3メガ程のちいさなものです。 どなたか詳しい方よろしくお願いします。とても急いでおります。m(__)m

  • ACCESSのVBS

    ACCESSの入力フォームをVBSを使って作成したいと思っています。 必要項目を入力し終わった時点で登録ボタンを押して新規のレコードに登録できるフォームを作りたいと思っています。 VBS、関数等の勉強をするにあたってお勧めの本を教えてください。 ちなみに、ACCESSは仕事で多少使っていますが、VBS、マクロ、関数についてはド素人です。 よろしくお願いします。

  • オラクルについて教えてください。

    ORACLEをデーターベースとして、MICROSOFTACCESSを使ってフォームやレポートを作ろうと考えています。 ACCESSではフォームのコマンドボタンなどからVBAを入力しなくとも一般マクロで様々な処理をすることができると思います。  しかし、そうするとORACLEの下記の特徴は実現されなくなるのでしょうか?またレコードソースにせず、フォームを非連結にすれば実現可能なのでしょうか?その場合、どんな感じの手順になるのでしょうか? 特徴 (1)必要なレコードのみを抽出したあとクライアントにデータを送信 (2)バックアップの最中も滞りなくデータベースを稼働 (3)完全な行レベルロック (4)マルチバージョニング読み取り一貫性 (5)ACCESSの約43億倍のデータを扱うことが可能 (6)ACCESSのようにファイル単位ではなく、表などのオブジェクト単位はもちろん、表の行や列単位にまでアクセス制御

  • Accessの自動計算のマクロについて

    Access初心者のものです。 Accessで商品管理のデータベースを作成しています。 主なテーブルの内容は、 商品番号、商品名、仕入数、仕入単価、販売数、販売単価、などです。 そしてクエリで、 仕入数×仕入単価=仕入金額、販売数×販売単価=販売金額を作成し、 入力フォームのフィールドで仕入数、仕入単価を入れれば仕入金額が計算されるようにしています。 そこでですが、仕入金額の表示が仕入数、仕入単価を入れて仕入金額のフィールドにフォーカス移動したときに計算結果が表示されずレコードの移動して元に戻ると計算結果が表示されます。 結果的には計算結果は表示されるのですが、レコード移動ではなくフォーカス移動後に計算結果を表示させるには、どのようなマクロの設定をすればよろしいのでしょうか? マクロについてはあまり詳しくはない為、その点ご考慮くださいますよう宜しくお願いいたします。

  • ACCESSのリレーションが切れてしまいました

    素人で甚だ恐縮ではございますが、社内システムのACCESS2003のデータベースでリレーション定義が無くなってしまい、アプリで削除していないにも拘わらず主たるテーブルのレコードの各項目に"deleted"或いは"#deleted"が入ってしまいました。 リカバリーは、「データベースの最適化/修復」を行い、リレーションを定義していた先のテーブル内のレコードを削除し、再度リレーション定義し再登録にて回復しました。 リレーションが切れる(無くなってしまう)原因がわかりません。 どういったケースで発生しうるかご教示頂ければと存じます。

  • アクセス2007 テーブルの全削除とデータ移動

    アクセス2007 テーブルの全削除とデータ移動 全テーブルを削除して、データをインポートしようとしています。 http://okwave.jp/qa/q5952603.html 以前の質問<QNo.5952603>の続きになってしまいますが。 >質問3. >削除後にインポートをしたいのですが。 >手動でアクセスメニュー>外部データ>アクセス(のインポート)>現在の~~>すべて選択(テーブル)>OK >これを実現するVBの記述は、どんなコードになるのでしょうか? 答え >DoCmd.TransferDatabase acImport, "Microsoft Access", strPATH, acTable, strTDef, strTDef, False なのですが、手動で行った場合の「オプション」>インポート「リレーションシップ=チェックON」の部分が 上記のお答えのコードで実現できませんでした。 各クエリの部分的なリレーションは残ってますが、全体のリレーション線が消えてしまいます。 どのようにしたら再現できますでしょうか?

  • Accessの運用について

    マクロソフトAccess2003でデータベースをネットワーク上で運用しています。データ用のmdbファイルをネットワーク上に置き、クライアントはリンクテーブルを張ったmdbファイルをデスクトップ上において使用しています。 一般的にはスタンドアロンで使用すべきソフトであり、パフォーマンスの低下等の問題が出てきたらアップサイジングが推奨されていると思います。 そこで素朴な疑問が生まれました。 たとえば、Accessデータベースを運用していて3万件のレコードでは問題なく稼動しており5万件を過ぎたあたりでパフォーマンスが低下して使い物にならなくなったとします。 パフォーマンスが低下しないで運用できる確実なレコード数は4万件とします。 そこで、レコードが4万件に達した時点でテーブルを分割します。今までのテーブルを【テーブルA】とし、分割後のテーブルを【テーブルB】とします。 繰り返しになりますが、【テーブルA】が4万件になったらこれを分割して【テーブルB】を設置して各2万件のテーブルとします。 2万件に分ける基準はあるフィールドを基準とし、運用上は検索の第一条件として、この条件決定後にレコードソースを【テーブルA】にするか【テーブルB】にするか決めるようにVBAで指示します。 【テーブルA】か【テーブルB】のどちらかが4万件に達した時点で同様のテーブル分割を行い【テーブルC】、【テーブルD】・・・・・と繰り返していけばレコード数増加によるパフォーマンス低下問題はずっと回避できると思うのですがいかがでしょうか? もちろんAccessは2Gのファイルサイズ制限がありますから、ファイルサイズが影響するパフォーマンス低下と判断すればバックエンドのmdbファイルも分割します。 なにぶんAccessの運用経験1年程度ですので、もしかしたら頓珍漢な発想かなと思い心配です。 ベテランの方々からのアドバイス・ご意見を頂きたいです。 よろしくお願いします。

  • 期限がきたら処理する方法

    環境:サーバー Windows2000Server データベース:Access2000(今後MySQLに変更予定) データベースに時刻(年月日時間分秒)がはいっています。その時刻になったら特定の処理をするようにするにはどうするのがいいのでしょうか? データベースの情報は常に更新されます。時間は基本的には更新されませんがレコードの削除はあります。 (一応レコード数は1000件ぐらいとします。)

  • データベースの初期サイズ

    基本的なことなのですが、データベースの初期サイズはだいたいどのくらい確保すればいいものなのでしょうか。 フィールドごとにデータ型のバイト数×レコード数で計算していけばいいのでしょうが、例えば導入後月1000レコードずつ増えていくと想定される場合、どのくらいのレコード数を目処にすればいいのでしょうか。 その際、トランザクションログのサイズはどのくらいとればいいのでしょうか。 あまりサイズが小さすぎると自動拡張を有効にしていた場合、それにより負荷がかかってしまうと聞いたのですが・・。

専門家に質問してみよう