• ベストアンサー

【アクセス】最大値を取得したい

テーブルの番号フィールド(主キー、数値型)は1~100000くらいまでの番号が振られていますが 80%は空き番号です。 (例えば3の次は100のような) VBAで1~100までのなかで 最大値を取得したいのですがどうしたらよいでしょう? 1 2 3 の次が 100の場合 4を最大値として取得するコードがあれば教えてください! 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

当方D関数勉強中です。クエリではいかがでしょうか。説明するのも大変なので、SQLを表示させたものを貼り付けます。 SELECT DMax("[id]","T_test","[id]<100") AS 式1 FROM T_test GROUP BY DMax("[id]","T_test","[id]<100"); VBAでやるなら、番号フィールドが100未満の条件で、Recordsetを取得して、必要なら番号フィールドでソートをかけてから、ループを回せば出来ると思いますが、他の回答者にお任せします。 上記SQLをVBA&ADOで実行してもできそうですね。汎用性は無いですが(^^;) Sub test() Dim MyConnection As ADODB.Connection Dim rs As ADODB.Recordset Dim MySQL As String Set MyConnection = CurrentProject.Connection Set rs = New ADODB.Recordset MySQL = "SELECT DMax('[id]','T_test','[id]<100') AS 式1 FROM T_test GROUP BY DMax('[id]','T_test','[id]<100');" Set rs = MyConnection.Execute(MySQL) Debug.Print rs.Fields(0) rs.Close MyConnection.Close Set rs = Nothing Set MyConnection = Nothing End Sub

noname#150929
質問者

お礼

なるほど!ありがとうございます。

関連するQ&A

専門家に質問してみよう