[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2004/12/01(Wed) 19:09
投稿者名:nana77
Eメール:
URL :
タイトル:
MSFlexGridのソート
はじめて投稿させていただきます。
MSFlexGridが持つソート機能を使って、データ(Int)の並びを昇順にしようと試みているのですが、
明らかに結果の順番がおかしいのです。
実際、『105 106 108 107 109』という並びになります。
ヘッダをクリックするソートでも、
以下のコードでも同じ結果になります。
MSFlexGrid1.Col = 20  '20列目    
MSFlexGrid1.Sort = 3  '数値の昇順
こんなことあるのでしょうか?
環境 WIN2000,VB5

投稿時間:2004/12/01(Wed) 19:34
投稿者名:カムリン
Eメール:kakurin@hotmail.com
URL :
タイトル:
Re: MSFlexGridのソート
基本的なとこ確認しますけど・・・
そのデータは、
他のソフト(AccessやExcel)のソート機能では、
ちゃんとソートされてるデータですよね

投稿時間:2004/12/01(Wed) 19:48
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: MSFlexGridのソート
データに問題がないのなら。

>MSFlexGrid1.Col = 20 '20列目

ひょっとしてソートしているのは隣の列(21列目)だったりして。

投稿時間:2004/12/02(Thu) 09:33
投稿者名:LESIA
Eメール:
URL :
タイトル:
Re^2: MSFlexGridのソート
> データに問題がないのなら。
>
> >MSFlexGrid1.Col = 20 '20列目
>
> ひょっとしてソートしているのは隣の列(21列目)だったりして。

質問には
> ヘッダをクリックするソートでも
ってあるので違うのかも。
でもMSFlexGridってヘッダをクリックしてソートできましたっけ?

あと、ヘルプには
> 並べ替えに使用されるキーは、Col および ColSel プロパティによって決定されます
と、書いてあるのでひょっとしてキーに複数の列を指定してたりして。

投稿時間:2004/12/02(Thu) 10:15
投稿者名:ダンボ
URL :
タイトル:
Re: MSFlexGridのソート
うまく動いているサンプルを載せますので参考にして下さい。注意が必要なこととして、
  .Col、 .ColSel、 .Row、 .RowSelの設定順番が重要です。
  .Col、 .Row、 .ColSel、 .RowSelの順番にすると予想通りにはなりません。


Private Sub grdFILES_DblClick()
Dim rtn As Long
Const SW_SHOW = 5

With grdFILES
Select Case .MouseRow
Case 0  'sort reverse  タイトル行のクリック時
  .Col = .MouseCol
  .ColSel = 1
  .Row = .MouseRow
  .RowSel = 0
  .Sort = flexSortGenericDescending
Case Else 'execute
  If .TextMatrix(CMouseRow, 0) <> "" Then
     rtn = ShellExecute(GetDesktopWindow, "open", txtFolder(0) & "\" & .TextMatrix(CMouseRow, 2), vbNullString, "", SW_SHOW)
End If
End Select
End With

End Sub