Sub LsSort(ByVal fm As Form, ByVal SortStr As String, SortDesc As Boolean) 'fm フォーム 'SortStr ソートする項目名+ラベル(ソートする項目名はレコードソース内に存在すること) 'SortDesc 昇順(False)降順(True)のフラグ '例 ' Private Sub 性別ラベル_Click() ' Static SortDesc As Boolean ' LsSort Me, "性別ラベル", SortDesc ' End Sub Dim strDESC As String DoCmd.Hourglass True If SortStr = "" Then Exit Sub If Right$(SortStr, 3) <> "ラベル" Then Exit Sub 'Ac97では許されたのですが、Ac2000ではフィールド名を [] で囲まないと [FieldName DESC] と解釈されてしまいます。 'もっとも汎用関数で [] で囲まなかった私がバカでした。(2000/01/29) fm.OrderBy = "[" & Trim$(Left$(SortStr, Len(SortStr) - 3)) & "]" & IIf(SortDesc, " DESC", "") fm.OrderByOn = True SortDesc = Not SortDesc Set fm = Nothing DoCmd.Hourglass False End Sub