• 締切済み

Access2003の仕様として、クエリのレコードセットのサイズ が

Access2003の仕様として、クエリのレコードセットのサイズ が 1 GBまでという制限があるようですが、 具体的にどのような条件なのでしょうか。 選択クエリの実行結果が(レコード長×レコード数 が)1 GB超えると エラー等が出るのかと思いましたが、 上記の想定サイズが1.7GB(2億レコード)近くなっても、(遅くはなりますが)通常通り実行できます。 ちなみに、プロファイル直下のTempフォルダには、1.7GBのTMPファイルが 作成されていたので、やはり、レコードセットのサイズは1GBを超えているように思えます。 制限されないのであれば良いのですが、 ご存知の方がいらっしゃいましたら、ご教授頂けませんでしょうか。 宜しくお願いします。

みんなの回答

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

ヘルプを読み返してみましたが、 レコードセットと言うよりは1レコードでの制限のように思えます。 テーブルの制約と読み合わせた、私の想像です。 TMPファイルのサイズが1.7Gとの事ですので、 MDBファイルの2Gの壁が近づいてますよ?

関連するQ&A

  • Access クエリでレコードセット作成

    Access2010でVBAを勉強しています。クエリオブジェクトからレコードセットを作れるかお教えください。 クエリのデザイン作成で3つのテーブルからデータを抽出するクエリを作りました。 このクエリオブジェクトからレコードセットを作りたいと思っていますが、作り方がわかりません。 よってクエリオブジェクトのSQLビューでSQLを確認し、VBAの中で下記のようにSQLを作ってレコードセットを作っています。 これだと効率が悪いので、クエリオブジェクトから直接レコードセットがつくれないかと思っています。 方法がありましたらお教え下さい。よろしくお願いします。 strSQL = "SELECT master.[サイズ], master.単価," strSQL = strSQL & "Nz([入庫数量の合計])-Nz([出庫数量の合計]) AS 在庫数" strSQL = strSQL & " FROM (master LEFT JOIN Q_出庫 ON master.[サイズ] = Q_出庫.[サイズ])" strSQL = strSQL & " LEFT JOIN Q_入庫 ON master.[サイズ] = Q_入庫.[サイズ]" objADORS.Open "T_出庫", objADOCON, adOpenDynamic, adLockOptimistic

  • Access 2021 でクエリが急に実行されなく

    昨日までは正常に動いていたクエリが 突然、何の反応も示さなくなり その結果もデータベースに反映されません。 クエリ内の内容はまったく同じなのに どうしてでしょう。 で、データベースの最適化/修復をしようとしたところ 「クエリを完了できません。クエリ結果のサイズが データベースの最大サイズ(2 GB)より大きいか、 クエリ結果を一時的に保存するディスクの空き容量が 不足しています。」というメッセージが出ました。 ひょっとすると原因はこれかなと思い、 ヘルプを参照したのですが、 【テンポラリ ファイル用の空き容量が不足しています。 (エラー 3183)】というタイトルページで "TEMP DOS 環境変数"とか"テンポラリ ディスクより 大きなテンポラリ ファイルを作成するクエリを 作成しようとしています。" というようなことが記述してあります。 処理しようとするレコード数自体はわずか10件ほどだし、 全体のレコード件数も1,000件以下なのにどうしてでしょうか。 ちなみにデータベース自体の容量は800MBほどです。 例えば「テンポラリ ディスクの使用可能領域」を増やすには どうすればよいのかもわかりません。 いつも皆様にはお世話になっております。 どうぞよろしくお願いいたします。

  • Accessの最大レコード数制限

    Access2000のヘルプを見ると、ファイルサイズとテーブルサイズがそれぞれ2GBと1GBと、容量で制限されていますが、Excelの行数(65536)のようにレコード数による制限はないのでしょうか。容量さえOKならレコード数はどれだけでもいいのでしょうか。 また、XPも同じでしょうか。 よろしくお願いします。

  • Accessの更新クエリについて質問です。

    よろしくお願いします。 集計したクエリを元に更新クエリを実行すると、更新できません。 やりたい作業としては、売上データテーブルのレコード数を得意先ごとにカウントして、得意先マスタテーブルのレコード件数フィールドを更新する作業です。 追加クエリで一度テーブルに追加してから、テーブル同士で更新も考えたんですが、レコード数が多いためにDBのサイズが爆発的に増えて廃案になりました。 何か良い方法があれば教えてください。

  • Accessでクエリを完了できません。と出ます。

    Access2007を使用しています。 OS:Windows7(64bit) CPU:Core i7 870@2.93GHz 3.07GHz 実装メモリ(RAM):8.00GB 少しデータ量はあるものの、あるクエリをテーブルにしようとすると下記のエラーが出ます。 「クエリを完了できません。クエリ結果のサイズがデータベースの最大サイズ(2GB)より大きいか、 クエリ結果を一時的に保存するディスクの空き容量が不足しています。」 と表示され、テーブルが作成できません。 少しデータを減らして実行されるとテーブルは作成でき、Accessの容量は96,372KBとなります。 この減らしたデータが残り2GB弱とは思えないので、処理中に一時保存する空き容量が不足 しているのかなと思いました。 どうすれば先へ進むことができるでしょうか? よろしくお願いします。

  • Access VBAでクエリーのレコード件数を取得したいのですが

    Access2003のVBAで次のような構文を用いてクエリーの該当レコード数を取得したいのですがうまく出来ません。 構文又は手法が間違っているのでしょうか。 Dim db As Database Dim rs As Recordset Dim cnt As Long Set db = CurrentDb Set rs = db.OpenRecordset("該当顧客リストクエリ", dbOpenTable) cnt = rs.RecordCount ※OpenRecordsetの行で「実行時エラー'3219'無効な処理です」と出てしまいます。 又、”該当顧客リストクエリ”では特定の抽出条件を設定して、”顧客リストテーブル”の一部を抽出するようにしています。

  • Access2000のADOのレコードセットに先頭一致SQLを指定できない

    お世話になっています。 さて、住所録があって、その住所の先頭と一致するレコードをSQLで抽出してその結果をレコードセットに代入したいのですが。 SQLは "SELECT 住所録.住所 FROM 住所録 WHERE 住所録.住所 Like '" & str住所検索 & "*';" というような感じです。(もうちょっといろいろあるけど) それで、 rst.Open strSQL, CurrentProject.Connection, adOpenStatic, adLockReadOnly, adCmdText rstはADOのレコードセットで、strSQLには上記のSQL文が代入されています。str住所検索には、検索したい住所の一部が代入されています。 これを実行すると、レコードセットにレコードが抽出されません。 WHERE句を 住所録.住所 = '" & str住所検索 & "';" と完全一致にすると抽出します。 しかし、全部の住所が一致するレコードを集めたいわけではないので、これでは困ります。 ちなみに、クエリーで実行するとちゃんと集まります。 なんとか、レコードセットにあいまい検索の抽出結果を代入できないでしょうか? ADOのレコードセットにはLike演算子は使えないのでしょうか? よろしくお願いいたします。

  • ACCESS VBA クエリを開く

    ACCESS初心者です。 VBAはEXCELで独学した程度の知識です。 フォームから受注納期を入力し、クエリを抽出。 クエリでレコード毎に製品票の印刷枚数を計算し レポートで各レコード毎に求められた印刷枚数分を 印刷させたいのですが・・・ クエリを開く段階でつまずいており困っています。 Private Sub コマンド23_Click() Dim db As DAO.database Dim rs As DAO.Recordset Dim qdf As DAO.QueryDef Set db = CurrentDb() Set qdf = db.QueryDefs("受注クエリ") With qdf .Parameters("納期") = Format(Forms![受注データ一覧]![納期], "yyyy/mm/dd") Set rs = .OpenRecordset .Close End With MsgBox rs![注文番号] rs.Close End Sub パラメータクエリの開き方、上記コードで問題ないでしょうか? そしてこのコードを実行した際 実行時エラー3421 データ型の変換エラーが発生しましたと表示されます。 ローカルウィンドウで 変数rs = nothingとなっており クエリのレコードが読み込めていないようです。 (Msgbox rs!注文番号はデータが読み込めたかテストするために コードを書いています。) どうぞ宜しくお願いいたします。

  • レコードセットの値を一気にDBに

    access2007で開発しています。 レコードセットのデータをDBのテーブルに一気にいれる方法はないのでしょうか? 調べたところレコードセットをMOVENEXTで一件ずつ読込み、インサート文をなげている例はあったのですが、一気にいれる方法は見当たりませんでした。 さらにいうと元々はSQLで insert into テーブル1(・・・) select ・・・from テーブル2 としたかったのですが、executeすると´3065´選択クエリを実行できません´のエラーとなってしまいました。 すいませんが、ご教唆ねがいます。

  • EXCEL vbaからACCESSのクエリを開く

    EXCEL2010 WEBを参照してEXCEL VBAでACCESSのクエリを開くマクロを流用しました。 下記がマクロの内容です。 Private Sub Import() Dim db As ADODB.Connection Dim rs As ADODB.Recordset 'ACCDBファイルに接続します Set db = New ADODB.Connection db.Provider = "Microsoft.Ace.OLEDB.12.0" db.Open "C:\work\TEHAI.accdb" 'レコードセットを開きます Set rs = New ADODB.Recordset 'Accessのクエリを開く rs.Open Source:="TEHAI", ActiveConnection:=db If rs.EOF Then MsgBox "抽出した結果、レコードが見つかりません。" Else ' レコードをシートへ貼り付ける Range("A1").CopyFromRecordset rs End If rs.Close Set rs = Nothing Set db = Nothing End Sub これを実行すると、 抽出した結果、レコードが見つかりません。 が表示されます。 ACCESS単体でTEHAIクエリを実行したら、約3万件くらいヒットします。 EXCELマクロから実行したらACCESSからデータをもってこられません。 なぜレコードが見つかりません、 となるのでしょうか? マクロのどこがおかしいのか、教えていただきたく。 ちなみに、もともとの内容から変更したのは db.Open "C:\work\TEHAI.accdb" rs.Open Source:="TEHAI", の2ヶ所だけです。