Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


616 / 9994 ←次へ | 前へ→

【12688】Re:同行のデータに優先順位をつけてのソート
回答  Hiro  - 15/1/27(火) 13:36 -

引用なし
パスワード
   ▼独覚 さん:

お返事ありがとうございます。
補足します。
Access初心者のため、まだ言葉足らずの部分があるかもしれませんが
よろしくお願いします。


>▼Hiro さん:
>.OrderByプロパティはそのフォームのレコードソースのファイルまたはクエリのフィールド名
>だったはずだけど。
>
>お書きのVBAだと"1"または"9999"という名前のフィールドで並べ替えようとするよ。
>
>サブリストに表示させるのをクエリにしてクエリのフィールドとして並べ替えの基準を
>入れてはどうだろう?

サブリストのレコードソースに登録詳細情報というクエリをセットしています。
そのクエリのフィールドに型式コードがありますので、cmbKatashikiの値と同じコードを1とし、
その他を9999と昇順でソートすればcmbKatashikiの値の順位が先頭となり、
その他が以降に表示されると考えました。

お話を聞いているとswitch文の使い方が間違えているようなので、
クエリのフィールドに並べ替えの基準を入れるようにしてみました。

ORDER BY Switch([登録情報].[型式コード]=[Forms].[メニュー].[cmbKatashiki].[Value],1,True,99);

を登録詳細情報クエリに追記したのですが表示される一覧は優先順位でソートされていませんでした。

[Forms].[メニュー].[cmbKatashiki].[Value]を固定値に変更してみるとナビゲーションウィンドウから
クエリを実行した場合優先順位でソートされ表示されるのは確認できました。


>
>あと、こういう場合はパラメータの入力ダイアログでなんというパラメータの値を求めているかも
>書いたほうがいいよ。

>訂正です。
>
>>"1"または"9999"という名前のフィールドで並べ替えようとするよ。
>こうなるのは
>
> .OrderBy = Switch(型式コード = & Me.cmbKatashiki.Value & ,1,True,9999)
>の場合ですね。
>
>今回の場合は
>Switch(型式コード = cmbKatashikiの値 ,1,True,9999)
>というフィールドの値を聞いてくるのかな?

パラメータの入力ダイアログはSwitch(型式コード = cmbKatashikiの値 ,1,True,9999)
と表示されていましたので、仰る通りフィールドの値を聞いてきていると思います。

347 hits

【12685】同行のデータに優先順位をつけてのソート Hiro 15/1/27(火) 9:22 質問[未読]
【12686】Re:同行のデータに優先順位をつけてのソート 独覚 15/1/27(火) 10:12 発言[未読]
【12687】Re:同行のデータに優先順位をつけてのソート 独覚 15/1/27(火) 10:35 発言[未読]
【12688】Re:同行のデータに優先順位をつけてのソート Hiro 15/1/27(火) 13:36 回答[未読]

616 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1081099
(SS)C-BOARD v3.8 is Free