Access2010、最新のレコードを安定して取得する方法
Access2010は、手頃な価格で高機能のデータベースを簡単に作成できるソフトです。
Access2010にはオブジェクトとして、テーブル、クエリ、フォーム、レポート、マクロ、
モジュール(VBA)が有ります。
しかし、Access2010でクエリを利用して最新のレコードを取得しようとした所、別のレコードが取得
されてしまう現象が発生しました。使用したパソコンは、下記のソフトを使用していました。
OS : Windows10(64bit)バージョン1803(OSビルド 17134.345)
表計算ソフト : Access2010(32bit)
以下、Access2010、最新のレコードを安定して取得する方法を記載して行きます。
(項目1)
・Access2010で、クエリを利用して最新のレコードを取得しようとした所、別のレコードが取得
されてしまう現象が発生しました。
・データベースを作成して最初の頃は正しく最新のレコードが取得されていましたが、ある時期から別の
レコードが取得されてしまう様になりました。
・クエリの集計で「最後」を選択して、最新のレコード(最後のレコード)を取得する様にしていました。
(項目2)
・インターネットで色々と調べた所、
First および Last 関数の仕様 - hatena chipsが見つかりました。
・上記の情報によると、「
クエリの集計で最後を選択すると、ハードディスクに最後に記録されたレコードが
取得される」との事でした。
(項目3)
・さらにインターネットで調査すると、
Access - SQL FIRST関数 LAST関数は不安定が見つかりました。
・上記URLのサンプルソフトsql_54.lzhを色々と弄って見ると、データベースを「名前を付けて保存」で、
正しく最新のレコードが取得される様になる事が分かりました。
・しかし、データベースを「名前を付けて保存」を毎回行うのは非現実的です。
(項目4)
・追加でインターネットで調査すると、
#4[ACS]あるフィールドでグループ化し、グループ化されたレコード
が見つかりました。
・上記の情報を基に、下記の様にプログラムした所、最新のレコードを安定して取得する事できました。
@Subクエリの作成: グループ毎でID(オートナンバー型)の最大値を取得するクエリ。
ASubクエリの結合: クエリとSubクエリの結合し、グループで最新のレコードを取得するクエリ。
(項目5)
・以上で、Access2010、最新のレコードを安定して取得する方法は終了です。