Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1536 / 2272 ツリー ←次へ | 前へ→

【6687】最大日 ??? 05/10/31(月) 9:00 質問[未読]
【6690】Re:最大日 小僧 05/10/31(月) 11:46 回答[未読]
【6692】Re:最大日 ??? 05/10/31(月) 12:54 質問[未読]
【6695】Re:最大日 小僧 05/10/31(月) 15:03 回答[未読]

【6687】最大日
質問  ???  - 05/10/31(月) 9:00 -

引用なし
パスワード
   テーブル: Table1
フィールド: A、B、C、D(日付型)
があり、各レコードのA、B、Cの日付の最大日をDに出力(更新)するクエリーを教えてください。

【6690】Re:最大日
回答  小僧  - 05/10/31(月) 11:46 -

引用なし
パスワード
   ▼??? さん:
こんにちは。

UPDATE Table1 SET Table1.D = IIf([A]>[B] And [A]>[C],[A],IIf([B]>[C],[B],[C]));

後々の事を考えると、ユニークとなるフィールドを作っておいた方が良いと思います。

【6692】Re:最大日
質問  ???  - 05/10/31(月) 12:54 -

引用なし
パスワード
   ▼小僧 さん:
>▼??? さん:
>こんにちは。
>
>UPDATE Table1 SET Table1.D = IIf([A]>[B] And [A]>[C],[A],IIf([B]>[C],[B],[C]));
>
>後々の事を考えると、ユニークとなるフィールドを作っておいた方が良いと思います。

ありがとうございます。ところで、この場合は3つのフィールドですが、10こ以上のフィールドがある場合の簡単な方法はありませんか?

【6695】Re:最大日
回答  小僧  - 05/10/31(月) 15:03 -

引用なし
パスワード
   ▼??? さん:
こんにちは。

IIf 関数 を使って複雑になってしまうのが嫌でしたら、
ユーザ定義関数を作って回避する方法もあるかと思います。

Function MaxDate(ParamArray MyDate()) As Date
Dim i As Long
  For i = 0 To UBound(MyDate) - 1
    If MaxDate = 0 Then
      MaxDate = MyDate(i)
    Else
      If MaxDate < MyDate(i) Then
        MaxDate = MyDate(i)
      End If
    End If
  Next
End Function

この関数をクエリの中から

MaxDate([A],[B],[C])のように呼び出して使ってみて下さい。

1536 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078229
(SS)C-BOARD v3.8 is Free