Microsoft Access 掲示板

連続の更新クエリの実行

2 コメント
views
4 フォロー

M_クエリに更新クエリを定義しており、MyNoの順に実行する単純なものですが、
60万件とか30万件とか一度に大量のデータを更新するクエリを多く含んでいます。

そのため、当該クエリを単独で実行すると、「ディスクの空き容量またはメモリが不足しているため、このアクションクエリによるデータの変更を元に戻すことはできません。」のアラートにOKをしての実行、最悪は「メモリが不足しています。」といったエラーが出てしまい、何度か実行すると実行できるといった状況です。

DoCmd.SetWarnings True

Set rs = currentdb.OpenRecordset("select * from M_クエリ order by myNo")

DoCmd.SetWarnings False

Do Until rs.EOF

    strSQL = rs![クエリ名称]

    db.Execute strSQL, dbFailOnError

    rs.MoveNext

Loop

DoCmd.SetWarnings True

ネットを検索するとレジストリを変えるとか、タスクマネージャーでACCESS.exeのプロセスのCPUマッピングを1つに限定するなどの情報は目にしますが、実際のところ、この更新クエリを確実にVBAで実行する方法はありますでしょうか。現在は、更新漏れがあっても気づかない可能性もあるのかなと思い、マニュアル実行しています。

アドバイスよろしくお願いいたします。

もっちー
作成: 2022/05/10 (火) 17:08:43
通報 ...
1
りんご 2022/05/10 (火) 22:21:12 c564b@0e907

M_クエリに更新クエリを定義しており、MyNoの順に実行する単純なものですが、

 こういうイメージで合ってますか?

myNoクエリ名称
1UPDATE ほにゃらら
2UPDATE ほにゃらら
2
りんご 2022/05/10 (火) 23:12:54 c564b@0e907

当該クエリを単独で実行すると、…

 単独でダメなら、いっぺんに全件更新せずに何件ずつかにわけるとか、不要なデータを分離するとか、そもそも更新でやりたい事が適切か第三者にアドバイスを求めるとか、素人考えですが。