2011-07-14 24 views
2

私は基本的なアクセスクエリからデータをフェッチするアクセスレポートを持っています。私が抱えている問題は、ユーザーが3つの別々のフィールドに基づいてデータを並べ替えることができるようにしたいということです。フィールドA、B、またはCに基づいて着信データをソートする場合、どのようにこの施設を選択することができますか?Microsoft Accessでのデータのランタイムソート

助けてください。 ありがとう!

+0

私はまだそれについてどうやって行くのか分かりません。私が持っている限られた知識によって、私は可能かどうかはわかりません。 – Farax

答えて

4

以下が役立ちます。

まず、ユーザが選択し[並べ替えフィールドを渡すためにopenArgsパラメータを使用します。

DoCmd.Close acReport, "MyReport" 
DoCmd.OpenReport "MyReport", acViewPreview, , , , "OrderByColumnName" 

次に、レポートのロードに注文するために使用渡された値:

をアクセス2007+の場合:

Private Sub Report_Load() 
    Me.Report.OrderByOn = True 
    Me.Report.OrderBy = Me.Report.OpenArgs 
End Sub 

Access 2003の場合:

Private Sub Report_Open(Cancel As Integer) 
    Me.Report.OrderByOn = True 
    Me.Report.OrderBy = Me.Report.OpenArgs 
End Sub 

結果は同じです。レポートは渡されたパラメータに基づいてソートされます。

これが役に立ちます。

+0

私のケースではこれが動作するかどうかを私に知らせています。ありがとう:) – Farax

+0

レポートにOnLoadイベントはありません - あなたはOnOpenを意味すると思います。 –

+1

ところで、私はOnOpenイベントのレポートのFilter/Sortプロパティを決して使用しません。そのイベントでコードを書く場合は、レポートのレコードソースを変更するか、ソート/グループ化の定義を変更します。 –

0

Pivot Chartsは、より複雑なデータの視覚化の方法です。

実際に3つのフィールドを選択する場合は、ユーザーがフィールド(リストボックスなど)を選択し、フォームを通じてレポートを開き、それに応じてソース属性を設定するフォームを作成できます。

+0

ピボット・チャートとその質問とは何が関係していますか? –

+0

3つのフィールドでソートすることから始まり、フィルタなどを使用できるようになります。 – Jacob

関連する問題