|
いつもお世話になってます。
またまたよろしくお願いします。
同一テーブルにあるフィールドA,B,C(すべて数値型)の最大値を取得したいと思い、検索して、次のような自作関数をモジュールに記入しクエリで使用して目的の値を取得しています。
(フィールドは現在3つなのでIF文でもいいのですが、もっと多くなることが予測されるので関数にしたいと思っています。)
Function Maxnb(ParamArray Mynb()) As Long
Dim i As Long
For i = 0 To UBound(Mynb) - 1
Debug.Print i
If Maxnb = 0 Then
Maxnb = Mynb(i)
Else
If Maxnb < Mynb(i) Then
Maxnb = Mynb(i)
End If
End If
Next
End Function
クエリ記述:Maxnb([A],[B],[C])
ところが、現状Cの値を無視し、A,Bの最大値のみを取得してきます。関数の記述に不備がありますでしょうか??
Ubound関数は配列のサイズを取得してくるとのことですが、デバッグの結果、iは0と1の繰り返しですので、3つめのフィールドCを認識してないのでは?と思っています。が、解決法の見当がつきません。
お分かりになる方、どうか回答をよろしくお願いいたします。
(Win Accessともに2000)
|
|