VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2003/04/07(Mon) 13:08
投稿者むろむろ
Eメール
URL
タイトルRe^4: レコードセットをグリッドに表示

魔界の仮面弁士さま、ありがとうございます。
> レコードセット取得後、MsgBoxにてadoRs.Fields(0).Valueは一番若い日付が表示されますので、
> 2件目以降の順番はあっているでしょうか。
あっています。レコードセット上では私の出したい順で出ています。

> >> Clipプロパティに、RecordsetのGetStringメソッドの戻り値を渡すようにすれば、
> >> 複数のセルに、値を一括して代入できるかと思います。
やってみました。DataSouceに指定するのと同じ様に表示はできるのですが、
結果はDataSouceに指定したものと一緒で、うまく順序どおりになりませんでした。

> >> まず、サーバー側カーソルを利用している場合は、それをadUseClientに変更してみてください。
     adoRs.CursorLocation = adUseClient
>     adoRs.Open strSQL, adoCn, adOpenStatic, adLockReadOnly, adCmdText
やってみました。が、上記と同様でうまく順序どおりになりませんでした。
>
> >> それで駄目なら、さらにSortプロパティを使って、ローカルソートをかけてみてください。
私がやったのはMSHFLEXGRIDのソートです。
魔界の仮面弁士さまの言われたとおり、ソートモードを変えてみたら、グリッドに一旦
表示してからのソートはできるようになりました。ちなみにソートモードは5です。
(これって文字列を並べ替える時のものですよね。)

>Recordset.Sortを利用するためには、RecordsetのCursorLocationが
> クライアント側カーソル(adUseClient)に設定されている必要があります。
これも実施しましたが、うまい順序で出ませんでした。

で、気づいたのですが、ソートモードを5に変えて、グリッド上でのソートは
できる様になったと言うことは、日付フィールドは「文字」なのでしょうか?
MSDE上では「DateTime型」にしています。
ただし、yyyy/mm/dd形式でInsertしているので、時刻までは入っていない状態
です。
SQLのエンタープライズマネージャー上で、この形式のまま、SQLを発行して
テストしてみたのですが、正しく日付が昇順で表示されました。
ということはデータの形式はこのままで良いと思われるので、
あとはVBのグリッドにした時(する時)にどうすれば良いのでしょうか?


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -