0

私は Access を使用するのに非常に慣れていないため、Access で使用できる機能の多くを知りません。

入力された値を統計的に監視するデータベースを設計しようとしています。つまり、データ入力フォーム、管理図があり、テーブルはすべて数値を含むフィールドでいっぱいです。

私が欲しい機能の 1 つは、データの傾向にフラグを立てることができるようにすることです。例:特定のフィールドの最後の5つの値が上昇傾向にある場合(最後の値が前よりも高い、前よりも高い、前よりも高い...など)または下向きの場合、色付きのテキストボックスが表示されます(か何か)。

私は考えたことがあり、Excel でそれを行う方法を知っています。特定の値 (セル) を参照し、次のようなコードを作成します。

If .Cells(iRow, 1).Value > .Cells(iRow - 1, 1) 
        And .Cells(iRow - 1, 1).Value > .Cells(iRow - 2, 1) etc etc Then
Sheets("Box1").Range("AA15").Interior.ColorIndex = 44
Trends = "3 consecutive points increasing"

Access がどのように機能するかについてはよくわかりませんが、入力された最新の 5 つのレコードを選択するクエリを作成することしかできないようです。

これを行うSQLで何かを書く方法はありますか? 誰かアドバイスをくれませんか!または、これを可能にするいくつかのテクニックの正しい方向を教えてください。

ありがとう。

使用しているデータのテーブルには、ID、バッチ、日付、フィールド 4、フィールド 5、フィールド 6 のフィールドがリストされています。

すべて数字です。

フィールド 4、5、6、および 7 の最後の 5 つのレコードに傾向があるかどうかを知りたいです。

クロス投稿: http://www.access-programmers.co.uk/forums/showthread.php?p=1421356#post1421356

4

2 に答える 2

0

考えられる解決策の 1 つは、ランニング カウントを使用することです。これは、ソース テーブルがそれ自体と比較されるネストされたサブクエリt1を使用して行われます (別のエイリアスに注意してください -とt2)。

ただし、実際には、フィールドを連続して並べる方法によって異なります。以下では、順序付けされた日付ごとに各 ID の増加するフィールド値を見つけたいと想定しています。または、バッチを日付別に比較することもできます。

SELECT t1.ID, t1.[Date], t1.Field4,

  (SELECT Count(*) 
   FROM SrcTable As t2 
   WHERE t1.Field4 > t2.Field4 AND t1.[Date] > t2.[Date]
        AND t1.ID = t2.ID ) As RowCount

FROM SrcTable As t1
ORDER BY t1.[Date];

このクエリをストアド クエリまたは VBA レコードセットとして保存し、RowCount が 5 の ID を見つけます。この ID には、連続して増加する 5 つのフィールド値が含まれます。また、上記は Field4 のみです。他のフィールドについても複製します。SrcTable を実際のテーブル名に変更します。

最後に、ユーザー インターフェイスがどのように見えるかはわかりませんが、条件付きでテキスト ボックスを書式設定できます。これは、フォームの [デザイン ビュー]/[書式] タブ (リボン上) で行い、テキスト ボックス コントロールを選択します。式ビルダーをDLookup値 5に設定します。

Expression Is:
    DLookUp("RowCount", "SavedQuery", "ID =" & Forms!yourformname!ID") >= 5

DLookUpは、DSum、DAvg、DCount、DFirst、DLast という一連の関数の中でアクセス関数です。データベースに保存されているテーブルやクエリのいずれかで、基準に従ってフィールド値をすばやく検索できます。これらは、SQL スクリプト、VBA コード、および式ビルダーで使用できます。

追加の項目: DLookUp はフォームを開いたときにのみ計算されるため、既存のデータを編集したり、新しいデータを入力したりしても、フォームの条件付き書式はすぐには更新されません。教科書の AfterUpdate イベントとフォームの AfterInsert イベントには、新しいデータ値を考慮した次の VBA が含まれます。

DoCmd.RunCommand acSaveRecord
Me!textboxname.Requery

再クエリとは、さまざまなオブジェクトのコントロール ソース、行ソース、またはレコード ソースを再計算する方法です。

于 2015-04-07T23:03:59.547 に答える