• ベストアンサー

Access2007 日付による条件書式のしかた

よろしくお願いします。 Access2007を使うことになったのですが、あまり詳しくありません。 レポートで[日付]が入力されている欄があり、一番新しい日付のデータの背景色を付けたいと思っています。 レポートは以下のような感じで、データは、[金額]の数値により並べ替えがされています。  [金額]  [日付]  5,250   2014/05/31  3,400   2014/03/01  2,000   2014/04/11  4,680   2014/06/01 条件付き書式で出来るのではないかと思うのですが、よくわかりません。よろしくお願いします。 どうぞよろしくお願いします。

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

  • ベストアンサー
回答No.9

【単純な設定ミスの検証】 Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)   If Me.日付 = DMax("日付", Me.RecordSource) Then     Me.日付.BackColor = RGB(255, 0, 0)   Else     Me.日付.BackColor = RGB(255, 255, 255)   End If End Sub 普通にウィザードで生成したレポートの詳細部ではDMax()=Max()が成立します。その場合、全くエラーが出ずにバックカラーが変更されないことはありえません。その場合に考えられるのは、バックカラーを設定し忘れていることです。そのことは、上記のコードを Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)   ここにコピペ End Sub することで検証できます。 仮に、これでバックカラーが変われば<[日付]=Max([日付])>でも実現できる筈です。

Robert1961
質問者

お礼

ありがとうございました。 最後まで丁寧にアドバイスをいただきまして、たいへん勉強になりました。 これからも自分なりにスキルを磨いていきたいと思います。

Robert1961
質問者

補足

ありがとうございます。 ご指摘いただいたとおり、背景色が透明にになっておりました。

その他の回答 (9)

  • m3_maki
  • ベストアンサー率64% (295/459)
回答No.10

横から失礼します。 条件式が正しいにもかかわらず バックカラーが変更されない(表示されない)場合として テキストボックスの「背景スタイル」が「透明」になっていることが考えられます。 プロパティをご確認ください。

Robert1961
質問者

補足

ご指摘の通り、背景が「透明」になっておりました。 この部分をなおしたら、表示されました。 みなさんありがとうございました。

回答No.8

補足:1と2とは、同じようですが厳密には違います。 詳細部においては、両者の差異は表面化しません。ですから、極めて特殊な場合においてのみです。

回答No.7

もしかしたら・・・・。 Max([日付])<>DMax("日付", "クエリ6") ということが表面化しているのかもです。 1、Max([日付])・・・・・・・・・・・・・・・・・レポートの特定グループ内の最大値 2、DMax("日付", "クエリ6")・・・・・・レポート内の最大値 1と2とは、同じようですが厳密には違います。

回答No.6

エラーも出ない代わりに色も変わらないということ? もう一度試してみてください。 念のために旧Access2002でも確認してみました。 2007だけダメってことは無いハズです。 『日付』という名前のフィールドはありますよね?

回答No.5

Access2007は持ち合わせておりませんが 『式』に、[日付]=Max([日付]) で良さそうに思えますけど? レポートを開くときにフィルターを設定していても大丈夫ですし。。。

Robert1961
質問者

補足

ありがとうございます。 試してみましたが、出来ませんでした。 他の方法をご存じでしたらご紹介いただけると助かります。

回答No.4

補足: 先に回答No.2でアタック。 ・売上伝票は添付図のようです。 ・回答1のクエリは、 SELECT   売上伝票.ID,   売上伝票.日付,   売上伝票.伝票番号,   売上伝票.売上金額合計,   CBool(DCount(    "*",    "売上伝票",    "日付 > #" & [日付] & "# AND 日付 <= #8/19/2014#")=0)     AS 最新日付   FROM 売上伝票   WHERE (((売上伝票.日付)<=#8/19/2014#)); ・回答2のクエリは、 SELECT   売上伝票.ID,   売上伝票.日付,   売上伝票.伝票番号,   売上伝票.売上金額合計,   FROM 売上伝票   WHERE (((売上伝票.日付)<=#8/19/2014#));  回答2の場合は、[最新日付]を判定も求めてもいません。条件付き書式設定で  DMax("日付", "クエリ6") で値を指定しています。 まあ、超簡単なのはNo.2のやり方でしょう。それに成功されたら、NO.1のやり方も試されたらどうでしょう。

回答No.3

Q、常に今日を基準に・・・。 A、それは、ありえません。 最新日付=DMAX([日付],"クエリXXX") [最新日付]とは、あくまでもレポートのもととなっているクエリ等に含まれる行の中の最大値です。WHERE節の条件を基準にする必要があります。その条件が今日であれば、それはそれでOKです。

回答No.2

補足: クエリ改変が面倒ならば・・・

回答No.1

添付図では、あらかじめ[最新日付]という列を生成しています。これは、非表示にすべきですが、ここでは表示しています。こういう仕掛けをすると、簡単に[条件付き書式]を設定できるかと思います。 SELECT   売上伝票.ID,   売上伝票.日付,   売上伝票.伝票番号,   売上伝票.売上金額合計,   CBool(DCount("*",            "売上伝票",            "日付 > #" & [日付] & "# AND 日付 <= #8/19/2014#")=0) AS 最新日付 FROM 売上伝票 WHERE (((売上伝票.日付)<=#8/19/2014#));

Robert1961
質問者

補足

f_a_007 様 早速回答を寄せていただきましてありがとございます。 回答内容の式で以下の部分についてですが   "日付 > #" & [日付] & "# AND 日付 <= #8/19/2014#")=0) AS 最新日付 #8/19/2014# の部分ですが、8月19日を基準にするという意味ですか。 常に今日を基準にするようにできたらいいのですが、そのようにはできるでしょうか。

関連するQ&A

  • ACCESSの一覧フォームで2つの日付の条件で、条件付き書式をしたい。

    一覧フォーム上に顧客のデータが入っていまして、 名前や住所、日付等のデータがあります。 そこでですが、 2つの日付の条件で、名前のフィールドの背景色を変えたいです。 日付の条件は、 1つ目は、今日から先の8日以内の日付のもの 2つ目は、日付欄が空欄のもの です。 条件付き書式の式に何らかを入れると思うのですが、 どうすればよいのでしょうか?

  • アクセス2000の条件付書式で

    フォームに[旧・日付]と[新・日付] というコントロールを配置しています。 この二つのデータを比較し、値が一致しない場合は条件付式書式で[新・日付]に背景色をつけたいと思っています。 そこでツールの書式→条件付書式で 式   [旧・日付]<>[新・日付] 背景色 ピンク と設定しました。 ところが[旧・日付]にデータが入力されている場合はうまくいくのですが、[旧・日付]が空欄で、[新・日付]のみデータがある場合は認識してくれません。 どのように設定したらうまくいくのでしょうか。 よろしくお願いします。

  • 条件付き書式 日付のセルを塗りつぶし

    Excel2007 ある列に 日付、文字列、数値が入力されています。 条件付き書式で日付の入力されているセルのみ塗りつぶしたい。 その方法を教えてください。

  • Access 日付の書式について

    いつもお世話になっております。 Accessの中での日付の書式設定について教えて下さい。 「受注日」というフィールドがあります。 データ型は、「日付/時刻型」で、既定値にDate()を設定し、新規データ入力時を受注日に自動的に登録できるようにしました。 次に、そのフィールドのデータをクエリで 「年:Year([受注日])]」というようにして、 「年」「月」「日」を別々に取り出しました。 「2005」「10」「14」という数字を取り出すことができました。ただ、「年」は年号の数字が必要なので、クエリの「年:Year([受注日])]」のフィールドの書式を「ee」にしました。 書式を設定していない時は「2005」と正しい数値を取り出すことができたのですが、「ee」の書式を設定すると 「38」というふうに表示してしまいます。試しに「yyyy」にすると「1905」と表示してしまいます。 どのようにすれば必要な数字「17」を取り出すことができるでしょうか? よろしくお願いします。

  • office(Access)の条件付き書式について

    メインフォームで指定した条件で抽出したクエリーデータを表形式サブフォームに表示しているのですが、サブフォームの各セルに規定のデータが入力されていない場合や規定の条件以外で更新を行った場合は背景色を黄色にしたくて「条件付き書式」であれこれ試してみたのですが出来ません。 セルへの入力項目と規定の入力データは以下の通りです。  (1)社員コード  固定長(6文字)の半角数値  (2)社員名    10文字以内の全角文字 よろしくお願いいたします。

  • 条件付き書式による塗りつぶしのご質問

    サンプル図をご用意しました。 図のように完了日欄(C4)に"6月3日"と入力すると2~3日分の作業予定欄の入力欄を塗りつぶし入力を除外しようとしています。 条件付き書式にて数式を指定して書式設定するセルを決定"を選択し「=$C$4>6/2」(※指定日付以上を塗りつぶしたい)と入力してみましたが、C4に”6月1日”と入力してもB13:D13は塗りつぶされたままとなります。 行いたいことは完了日付まで日数分は予定表の入力欄を塗りつぶすようにしたいのですが条件付き書式欄に入れる数式をご教示いただけると幸いです。 よろしくお願いします。

  • Accessの日付の書式

    Accessのフォームで自動入力される日付の書式は 05 04 18というようなものはないのでしょうか。  年 月 日 と印刷がされた紙に印刷したいのですが・・。 今は、日付 (M) 05-04-18 というのを代用利用しています。

  • 条件つき書式で0

    条件付書式で「0」と入力した場合背景をピンクにしたい設定 (セルの値が次の値に等しいとき=0、背景=ピンク)したところ まだ数値をいれていないところまでピンクになってしまいました。 まだ値をいれていないセルは背景を透明(要するに普通の状態) にしておきたいのですが その場合はどのように設定したらよいのでしょうか? 私でもわかるように詳しくお願いいたします。

  • Access 日付の書式  追加分です。

    いつもお世話になっております。 つい先ほど、質問して良回答を得たのですが、 改めて質問させて下さい。 Accessの中での日付の書式設定について教えて下さい。 「受注日」というフィールドがあります。 データ型は、「日付/時刻型」で、既定値にDate()を設定し、新規データ入力時を受注日に自動的に登録できるようにしました。 次に、そのフィールドのデータをクエリで 「年:Year([受注日])]」というようにして、 「年」「月」「日」を別々に取り出しました。 「2005」「10」「14」という数字を取り出すことができました。ただ、「年」は年号の数字が必要なので、クエリのフィールドを「年:Val(Format([受注日],"ee"))」とすることで、必要な数字「17」を取り出すことができました。 そのクエリを、レポートでレコードソースとして取り込みました。レポート上に「年」というテキストボックスを設定し、コントロールソースを上記の「年」フィールを指定したのですが、「17」を表示しません。クエリでは「17」と表示しています。書式を「ee」にすると「38」、 「Val(Format([受注日],"ee"))」と打ち込むと、当然エラーになります。レポートで年号の数値「17」だけを表示さえる方法を教えて下さい。 何度もすみません。 よろしくお願いします。

  • 条件付書式で、「3ヶ月間だけ」書式を変更する方法を教えてください

    あるセルに入力されている日付から、3ヶ月間だけセルに色をつけたいのですが、 条件付書式で設定する事は可能でありますでしょうか?若しくはマクロなどを利用 しないとセルに色をつけることなどを行なうことはできないでしょうか? お分かりになる方、申し訳ありませんご教示お願い致します。 例えば、以下のような感じのです。 -------------------------------------------------- A列(A1~A300)に日付がランダムで入力されています。 B列には、使用者名を入力してあります。 以下C~P列まで各種データを入力してあります。 A1に2008/10/27と入力されているとして、3ヶ月間A1~P1のセルに水色の塗りつぶしを行ないたいのです。 A列の日付の扱いは、2008/10/27であれば「10月から3ヵ月後まで」で2009/01/31まで水色で 塗りつぶしている状態にしておきたいです。 2008/09/27であれば、2008/12/31までという具合です。(A列の日付のMMの+3ヶ月した月末までという感じ) -------------------------------------------------- このような現在の日付をみて、入力されている日付からの経過日数で書式を変える事を 条件付書式で行なうやり方、若しくは条件付書式では行なえない場合はどのようにすると 解決できるのかをご教示頂けますでしょうか。よろしくお願い致します。

専門家に質問してみよう