使いやすいように設計された Microsoft リレーショナル データベース管理システムのファミリ。
こんばんは、ずっちです。
こんな更新クエリを作ってみました。

[レコードの更新] には以下のように書かれています。
DCount("*","[テーブル2]","[アイテム名]='" & [アイテム名] & "' AND [日付]>=#" & [日付] & "#")
で、実行結果↓
いかがでしょうか?
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
テーブルにアイテムごとの期間(開始日・終了日)と処理日がリストされているとします。
| 処理日 | アイテム名 | 開始日 | 終了日 |
|---|---|---|---|
| 2010/4/28 | A | 2010/5/1 | 2011/4/30 |
| 2011/4/26 | A | 2011/5/1 | 2012/4/30 |
| 2012/5/7 | A | 2012/5/1 | 2013/4/30 |
| 2011/4/26 | B | 2011/5/1 | 2012/4/30 |
| 2012/5/7 | B | 2012/5/1 | 2013/4/30 |
| 2010/5/25 | C | 2010/5/1 | 2011/4/30 |
| 2011/4/26 | C | 2011/5/1 | 2012/4/30 |
| 2012/5/7 | C | 2012/5/1 | 2013/4/30 |
このとき、下記のようにアイテムごとに日付の新しい順に番号を振るフィールドを作成するようなことをAccess上ですることは可能でしょうか?
| 処理日 | アイテム名 | 開始日 | 終了日 | 日付順 |
|---|---|---|---|---|
| 2010/4/28 | A | 2010/5/1 | 2011/4/30 | 3 |
| 2011/4/26 | A | 2011/5/1 | 2012/4/30 | 2 |
| 2012/5/7 | A | 2012/5/1 | 2013/4/30 | 1 |
| 2011/4/26 | B | 2011/5/1 | 2012/4/30 | 2 |
| 2012/5/7 | B | 2012/5/1 | 2013/4/30 | 1 |
| 2010/5/25 | C | 2010/5/1 | 2011/4/30 | 3 |
| 2011/4/26 | C | 2011/5/1 | 2012/4/30 | 2 |
| 2012/5/7 | C | 2012/5/1 | 2013/4/30 | 1 |
データをExcelにエクスポートして、Excelのマクロで処理することはできるのですが、
この後まだAccess上で操作が必要なため、Accessで全て処理できればいいなと考えております。
ご教授頂けましたらありがたいです。
どうぞよろしくお願い致します。
使いやすいように設計された Microsoft リレーショナル データベース管理システムのファミリ。
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。
質問作成者が受け入れた回答
こんばんは、ずっちです。
こんな更新クエリを作ってみました。

[レコードの更新] には以下のように書かれています。
DCount("*","[テーブル2]","[アイテム名]='" & [アイテム名] & "' AND [日付]>=#" & [日付] & "#")
で、実行結果↓
いかがでしょうか?
ずっちさん、
ご丁寧にご説明頂きましてありがとうございます!
理解できました。
型変換エラーですが、テーブルを作り直してみたら解消しました。
フィールド型は同じように設定していたのですが・・・・・何が悪かったのかは不明です・・・・。
本当にありがとうございました!
助かりました。
ずっちです。
フィールド型変換エラー、どこが問題だったんでしょうね…
ちなみに今回テストで使ったフィールドの型は以下のとおりです。
日付 … 日付/時刻型
アイテム名 … テキスト型
日付順 … 数値型(長整数型)
で、DCountの第一引数ですが…
http://office.microsoft.com/ja-jp/access-help/HA001228817.aspx
このページには以下のように書かれている部分があります。
expr がワイルドカード文字 (*) でない限り、expr で参照されるフィールド内にある Null 値が入ったレコードは計算対象になりません。ワイルドカード文字を使うと、Null フィールドを持つレコードも含め、すべてのレコードの総数を計算することができます。
今回の場合Nullが無いので、第一引数に「"[日付]"」としても結果は変わらないですね。
DCount関数は、第三引数に一致するレコードの数を返す関数なので、第一引数はあまり意味がない。
と個人的には思っています。
ご理解いただけましたでしょうか?
ずっちさん、早速のご回答ありがとうございます!!
同じように更新クエリにすると、「フィールド型変換エラー」となり実行できませんでした・・・・。
テーブル作成クエリにしてみましたところ、欲しかった結果が得られました!
追加で質問してもいいでしょうか?
式の「”*”」はフィールドを指定する部分だと思うのですが、今回は「日付」ではなく「”*”」とされたのはどういった意味があるのでしょうか?
ご教授いただけますとありがたいです。
どうぞよろしくお願い致します。