本文へスキップ

別館:エクセルQC館 別館:エクセル株式館

  1. トップページ>
  2. Tips>
  3. Access2010、最新のレコードを安定して取得する方法

Tipstips

備忘録として、主にパソコン関係のTipsを記載して行きます。


新着情報
@UiPath、メモ
AOffice365、Excel:VBAで画面更新がチラツク時の対策
BOffice365、Excel:勝手に手動計算になる原因
COffice365、Excel:フィルターで3つ以上の条件にする方法
DOffice365、Excel:シート同士の違いを見つける方法

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、最新のレコードを安定して取得する方法は終了です。



contents

エクセル将棋館

日本国

地方都市


スポンサード リンク