- ベストアンサー
アクセスのVBAについて
アクセスのVBAでテーブルからウィザードでフォームを作成したのですが、その表示内容を昇順でソートしたいのですがどうすればよいのでしょうか?勝手に主キーでソートされてしまいます。違う値でソートしたいのですが・・・一応フォームLoadのイベントでSQLでテーブル内容をソートして値を代入していったのですがうまくいきません。 よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
フォームのLoadイベントにSQLを書くのであれば、、 Sub Form_Load() dim strSQL as String strSQL = "SELECT * FROM Table1 ORDER BY Field1;" Me.RecordSource = strSQL 'フォームの並べ替えプロパティを削除 Me.Orderby ="" Me.OrderbyOn = False 'フォームのフィルタプロパティを削除 Me.Filter = False 'フォームの再描画 Me.Refresh End Sub こんな感じでしょうかねぇ。 #Accessを起動させずに書いてるので、あくまでも「感じ」ってことで(^^;。 何かありましたら、補足にお書きくださいませ。
その他の回答 (3)
- Kalen_F
- ベストアンサー率25% (2/8)
フォームのプロパティ→レコードソースでSQLを作ります。 そのSQLで、昇順にしたいフィールドを、並べ替えしてやると、一番分かりやすく手っ取り早いです!
- O_cyan
- ベストアンサー率59% (745/1260)
Accessのウィザードで作成したフォームを使用するとSQLよりAccess自体のフォームの設定を優先するため主キーでソートされてしまうのでそのフォームのプロパティのデータのレコードソースでクエリーを作製してそのクエリーでソートしたい順に指定すれのが一番簡単です。もしくはSQLでフォームのソートを無効にする記述をいれるかだと思います。Accessのフォームをインターフェースとして使うならクエリーを作成した方が良いと思います。
- dpagr506
- ベストアンサー率50% (1/2)
一番簡単な方法はクエリーを作成して、フォームのデータソースに設定することです。 クエリーならソート順は自由に設定できますので自由度は高くなります。 SQLを投げて表示しているということは更新はしないと思いますが、もし更新する必要がある場合にグループ化などしていると更新時にエラーになりますので注意してください。
お礼
お返事が遅くなりましたが、できました!!!! 有難うございました。