アプリ版:「スタンプのみでお礼する」機能のリリースについて

以下のテーブルがあります。

 フィールドA=受注日付 (日付型 yyyy/mm/dd)
 フィールドB=申込日付 (日付型 yyyy/mm/dd)
 フィールドC=着手日付 (日付型 yyyy/mm/dd)

 フィールドD=”ここに関する質問です。”(日付型 yyyy/mm/dd)

 フィールドA~Cの中で、一番昔の日付レコードをフィールドDに表示させるための関数の入れ方が分かりません。 
単一フィールドにあるレコードで、最古日、最新日を抽出する方法はほかの質問でも挙がっているのですが、複数フィールドの中から選択肢、新たなフィールドに表示させる方法が中々見当たらず質問させていただきました。

 例)
  [A]      [B]    [C]       [D]
2011/11/1  2012/1/1 2012/3/1  → 2011/11/1

 ※A~Cの中で一番古いのは「A」なので、DにAの日付を表示させる。


何方かご教授、よろしくお願いいたします。

A 回答 (2件)

最新日なら簡単なのに・・


以下を標準モジュールに置いて
クエリで
フィールドA|フィールドB|フィールドC|最古日:oldest([フィールドA],[フィールドB],[フィールドC])
のように比較したいフィールドを好きなだけ入れてみてください。
A,B,C が全て未記入なら1900/1/1 が返ります 。
投稿用にタブインデントを全角スペースに変換しています。

Function Oldest(ParamArray aryX() As Variant) As Date
'日付型要素の中で最小(古)値を求めます(未記入は除外)
'oldest(null,#2000/1/1#,#1999/12/31#) → 1999/12/31
Dim v As Variant
  Oldest = #12/31/2999#
  For Each v In aryX
    If Not IsNull(v) Then
      If v < Oldest Then
        Oldest = v
      End If
    End If
  Next
  If Oldest = #12/31/2999# Then
    Oldest = 2 '#1900/1/1#
  End If
End Function

hatenaさんのとの違いは返り値が日付時刻型かVariant型かの違いです。
今日はkiku さんの追っかけです (^^ゞ ご容赦のほどを。
    • good
    • 0
この回答へのお礼

ご返信遅くなり大変申し訳ございません。
試して見たところ上手くいきました。
ご回答ありがとうございました。

お礼日時:2012/06/30 11:29

以下が参考になるかもしれません。



フィールド間(横方向)での集計関数
http://hatenachips.blog34.fc2.com/blog-entry-182 …
    • good
    • 0
この回答へのお礼

返信遅くなり大変申し訳ございません。
モジュールを使うんですね。試しにやってみたら上手くいきました。
ご回答ありがとうございました。

お礼日時:2012/06/30 11:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!