投稿者 るきお  (社会人) 投稿日時 2009/2/22 05:44:28
こんにちは。
ORDER BYによる並び順の指定は、そのORDER BYを使ってデータを読み込むときにのみ作用し、そうでない場合の順番は保証されていません。
Access側はORDER BYが発行されるたびに一生懸命並び替えをしており、並び替えた結果を次回のためにとっておくということはしません。


ですので、カロリーメートチーズ味さんのプログラムでは
value = SQLCm.ExecuteScalar
として値をとってきていますが、このSQLCmにセットされているSQL文は
SQLCm.CommandText = "select name from keibayosou"
となっており、ORDER BYが指定されていないため並び順がランダムになります。

多分以下のようすると望みどおりになるのではないでしょうか?
※点数をあらわす列名を仮に「点数」としてみました。keibayosouテーブルの構造によってはうまくいかない場合もあります。
    SQLCm.CommandText = "select name from keibayosou order by 点数 desc"
    Dim value As String
    Cn.Open()
    value = SQLCm.ExecuteScalar
    Cn.Close()
    MsgBox(value)