システムwiki

Office:名簿データベースの日付の質問

RhysLuc 解決済 最終更新日:2020-08-19 19:15

こんにちは、

データベース(Access 2016)を使用しており、ユーザーが仕事の依頼をしたり、特定のシフトをオフにしたりしています.各名簿は2週間で、前の名簿の最初の週の金曜日に確定します.

すでにファイナライズされた名簿のリクエストが送信されないようにするために、以前は単一の日付を含む別のtableを作成しました.これは、名簿が確定したときに、名簿の最終日に更新できます.変更前 '
すべてのシフトリクエスト.

これは機能しますが、名簿のカットオフがどれほど定期的であるかを考えると、カットオフの日付を毎週金曜日の2週間ずつ自動的に増やす方法を考えています.これは達成可能で、誰でも指摘できますか?私の正しい方向に
方法は?

現在の方法がおかしい場合は、PS謝罪(私のデータベースはスパゲッティコードで処理されているはずです).これは、Excelのバックグラウンドから取得した最初のAccessデータベースです.Excelではなく、問題なく実行できます.Accessのどこから始めればよいかを確認してください.

ご協力いただければ幸いです.

リズム

返信リスト(回答:10)

1 #
GroverP

おはようございます.他のいくつかのアプローチでも同じ結果が得られると思います.

1つは、この参照tableを、金曜日の締め切りのすべての日付で完全なものにすることです.1年分から始めましょう.

ここで、入力日を単一の日付と比較する代わりに、現在の日付が含まれる2週間の範囲内の日付を確認します.

応答1# ->にスキップ
3 #
RhysLuc

早送りのためのThankyou、

提案されたように私は3つのフィールド「RosterStart」、「RosterFinish」&「Rostercutoff」を持つtable(RosterCalc)を設定し、塗りつぶしています.

以前は、イベントが次のように設定されていました:

RosterCalc

にレコードを調べます.

ここで、条件=[RosterCalc].[RosterCutoff]

shiftreequestsです.[Daterequested]<= [RosterCalc] [RosterCutoff]

raiseerror

新しい方法を収容するために、イベント前に次のように変更しました:

RosterCalc

にレコードを調べます.

ここで、条件=[ShiftRequests].[Daterequested] [Rostercutoff]の間.[RosterStart]と[Rostercutoff].[RosterFinish]

shiftreequestsです.[Daterequested]<= [RosterCalc] [RosterCutoff]

raiseerror

このバリアントが機能していないので、私はすべての要求を否定するように見えるように、私はロスターカットオフを正しく確立していないと思います.このアプローチで短い場所にいくつかの光を刈ることができますか?

応答3# ->にスキップ
4 #
GroverP

VBAではなくマクロを使用していますが、これは少し難しい傾向があります.実際に、サンプルのtable名とフィールド名を使用すると、SQLステートメント内でこれを実行できる場合があります.少し工夫してください.

応答4# ->にスキップ
6 #
GroverP 1
シフトカットオフフィルター
応答6# ->にスキップ
7 #
GroverP

ちなみに.将来のシフトは問題なく、以前のシフトのみがブロックされるようにあなたの要求を解釈しました.それが有効でない場合は、VBAを変更して両方の条件をチェックできます.

これをマクロで実行できるかどうかはわかりません.私はめったにそれらを使用しないので、私は不快に思います.

応答7# ->にスキップ
9 #
RhysLuc

どうもありがとうございました.

zipには何の問題もありません.まさに私が探していたものです.そして、はい、私はこのデータベースのいくつかの場所でマクロの制限にすでに遭遇しました.それらは、非常に基本的な機能にはとても便利に思えました.

想定は正しかったですが、将来のシフトはすべて問題ありませんが、個人的にこれを制限したいのですが、これは私の電話ではありません.

すべてをチェックして、これで問題が解決するかどうかを確認します.

リズム

応答9# ->にスキップ
10 #
GroverP

それ自体が実際には役に立たない場合でも、これがパスの確認に役立つことを願っています.

私の心の鍵は、可能な限り組み込みのAccessの機能と関数、日付関数、SQLなどを使用することです.

2 #
Scottge
こんにちはRhys、私は独立した顧問です、そして助けようとします.
私が理解しているかどうか見てみましょう.カットオフ日付を表す日付を含む1つのフィールドtableを1つあります.そして、あなたはその日を1週間おきに2週間増加させたいです.
私の質問ここに何が起こるかは、各代替金曜日の何が起こるのかということですか?そのため、現在の日付は3/20であると言ってください.4/3に更新されるべきですか?
実際のプロセスは簡単です.そしてそれが私が明確ではないものです.
応答2# ->にスキップ
5 #
RhysLuc

こんにちはスコット

現在の締切日が4/25であることを示すために、締切日は将来の日付になるため、この日付以前の要求は受け入れられません.次の名簿は4/3まで確定されず、その時点でカットオフは2週間後(5/9)になります.
2週間の名簿が完成しました.

元々、私がデータベースを作成している人の要求により、日付の更新が手動でトリガーされました.ただし、データベースをチェックしてすべてのアクションを実行した後、更新を覚えておくことができなかったため、自動化を望んでいます.
リクエスト.

更新のトリガーとなるものに関しては、データベースのコンテキスト内で何が使用可能かはわかりません.金曜日または隔週でイベントを開くイベントやトリガーがないため、ファイルとtableを見て、
週を通して複数回発生します.

8 #
Scottge
ここで問題が発生します.名簿の確定日も追跡する必要があるようです.そのため、名簿が確定したら、その更新クエリを実行します.ファイナライズの方法を決定する必要もあります.