Microsoft Access で、[無期転換予定日]や[退社日]を基にして、[雇用形態]を自動的に判別する式を作成したい場合、適切な条件式を組むことが重要です。質問者様が直面した問題は、退社日が入力されている場合にすべてのレコードが「有期雇用」になってしまうというものです。ここでは、この問題を解決するために、正しい式を組む方法を解説します。
1. 現在の式の問題点
質問者様が試した式は以下の通りです。
IIf([無期転換予定日]='対象外','有期',IIf([無期転換予定日]<=Date() And IsNull([退社日]),'無期','有期'))
この式は、[無期転換予定日]が「対象外」の場合に「有期雇用」を、[無期転換予定日]が現在日付より前で、かつ[退社日]が空欄の場合に「無期雇用」を、それ以外の場合は「有期雇用」を返すものです。
ただし、退社日が入力されている場合にすべて「有期雇用」となってしまうため、退社日を考慮したロジックを追加する必要があります。
2. 修正するべきポイント
問題の原因は、退社日が入力されている場合、すべて「有期雇用」と判定されてしまう点です。ここで重要なのは、「退社日が入力されている場合、無期転換予定日後に退職していれば無期雇用にする」という条件を追加することです。
式を修正して、退社日が入力されている場合に無期転換予定日後に退職していれば「無期雇用」にするようにしましょう。
3. 修正後の式
修正後の式は以下の通りです。
IIf([無期転換予定日]='対象外','有期',IIf([無期転換予定日]<=Date() And (IsNull([退社日]) Or [退社日]>= [無期転換予定日]),'無期','有期'))
この式の変更点は、[退社日]が空欄または無期転換予定日後に退職している場合に「無期雇用」と判定する条件を追加した点です。
これにより、無期転換予定日後に退職した場合にも「無期雇用」と判定され、退社日が入力されていても正しく結果が表示されるようになります。
4. 式の動作確認
修正した式を[雇用形態]フィールドに適用した後、いくつかのサンプルデータで確認を行いましょう。例えば、無期転換予定日が過去の日付で、退社日が無期転換予定日後の日付であれば、「無期雇用」と判定されることが確認できます。
もし問題が解決しない場合、式の条件をさらに調整する必要がありますが、基本的にはこの修正で目的の動作が実現できるはずです。
5. まとめ
Microsoft Access のIIf関数を使って雇用形態を自動判別する際、退社日が入力されている場合でも無期転換予定日後の退職を考慮することが重要です。式を修正することで、「無期転換予定日後に退職した場合に無期雇用にする」という条件を追加でき、正しい結果が得られるようになります。
これで、質問者様が抱えていた問題が解決できることを願っています。
コメント