0

マルチユースの組織ボタンをデザインしようとしています。

ボタンの下には、データを含むサブフォーム (ProjectQSubF という名前) があります。ただし、1 セットのデータだけに注目してみましょう。このデータは ProjectComplete という名前で、ブール値の Y/N (チェックボックス) フィールドであるとしましょう。

クリックすると、チェックがオン (はい) の場合にすべてのフィールドが並べ替えられるボタンを設計したいと考えています。ボタンを再度クリックすると、チェックされていない(いいえ)逆の状態でソートされます。クリックし続けると、これら 2 つの状態の間を行ったり来たりするだけです。

どうすればいいですか?

また、日付でこれを行うにはどうすればよいですか。2つの状態として、現在に近いものと最も遠いものに基づいていますか?

4

1 に答える 1

0

行(またはチェックボックスなど)を作成します。それを目に見えるように設定します= false;

タグ値 (/checked 状態) を使用して、True または False という定数を保持します。オブジェクトに isSortAscending などの名前を付けます。

ボタンのクリックイベントで:

isSortAscending.Tag = (not cbool(isSortAscending.Tag)) 'switch state to the opposite
dim ss as string: ss = ProjectQSubF.Form.RecordSource  'get the existing data query 
ss = left(ss, instr(ss, "ORDER BY") - 1)               'chop off the existing sort logic
if isSortAscending.Tag = True then
    ProjectQSubF.Form.RecordSource = ss & "ORDER BY yourColumnName"
else
    ProjectQSubF.Form.RecordSource = ss & "ORDER BY yourColumnName DESC"
end if

同様に、日付の場合、DESC は新しい順を意味し、ASC (または単に「DESC」がない場合 - 上記のコードのように) は古い順を意味します。

日付または true/false 列を使用しているかどうかに関係なく、使用している列の 1 つの値に対して複数の行が存在する可能性があり、この列内の行がおそらくソートされていないように見えるので、上記の order by ステートメントの後に ", nameofMainTextColumn" を追加することをお勧めします。

お役に立てれば

于 2013-10-31T03:01:08.217 に答える