| FIRST関数 LAST関数は不安定 | ||||
SQL = " SELECT FIRST(フィールド名) AS 名前 FROM テーブル名 " SQL = " SELECT LAST(フィールド名) AS 名前 FROM テーブル名 " FIRST関数は先頭のレコードを返します。 LAST関数は末尾のレコードを返します。 Access固有の関数です。 実際に使って見ると、やはり違う値が返りました。 Microsoftサーポートオンラインにも「First および Last 関数が期待どおりのレコードを返さない」と記載されています。 http://support.microsoft.com/default.aspx?scid=kb;ja;208190 それによりますと、「First()、Last()、DFirst()、および DLast() 関数では、並べ替え順、インデックス、および主キーが無視されます。 これらの関数は、指定された並べ替え順での先頭または最後のレコードではなく、レコードがテーブルに入力されたときの順序 に基づいて、削除されていない先頭または最後のレコードを返します。 」とあります。
サンプルソフト [実行時の画面] 「先頭レコード FIRST関数」ボタンをクリックすると、先頭のアクセス数の500を期待しますが、400となっています。 「最終レコード LAST関数」ボタンをクリックすると、末尾のアクセス数の512を期待しますが、503となっています。 ■実行画面 ![]() [アクセス テーブル] アクセスID 日付 アクセス数 10 2007/09/10 500 11 2007/09/11 481 13 2007/09/12 652 16 2007/09/13 503 17 2007/09/14 400 18 2007/09/15 450 19 2007/09/16 520 20 2007/09/17 421 21 2007/09/18 450 22 2007/09/19 468 23 2007/09/20 512 ![]() [コード] Private Sub コマンド59_Click() Dim SQL As String Dim rs As Recordset SQL = "SELECT LAST(アクセス数) FROM アクセス" Set rs = CurrentDb.OpenRecordset(SQL) Me!テキスト2 = rs(0) Set rs = Nothing End Sub Private Sub コマンド8_Click() Dim SQL As String Dim rs As Recordset SQL = "SELECT FIRST(アクセス数) FROM アクセス" Set rs = CurrentDb.OpenRecordset(SQL) Me!テキスト1 = rs(0) Set rs = Nothing End Sub
ダウンロード |
||||
Copyright(C) 2007-2008 FeedSoft