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で実行する方法はありますでしょうか。現在は、更新漏れがあっても気づかない可能性もあるのかなと思い、マニュアル実行しています。
アドバイスよろしくお願いいたします。
こういうイメージで合ってますか?
単独でダメなら、いっぺんに全件更新せずに何件ずつかにわけるとか、不要なデータを分離するとか、そもそも更新でやりたい事が適切か第三者にアドバイスを求めるとか、素人考えですが。