- 締切済み
ACCESSでの置換で質問です。
クエリで特定のフィールドの値を置換するようにしていますが、完全一致ではなく一部に特定の文字があった場合、別の名前に置換したいです。 元データ 契約番号 R00332 R00224 R00553 個人所有 会社所有 上記の契約番号のフィールドを下記のように新しい別フィールドに置換したい。 Rが入っている数字は、部門契約 個人所有は、空欄 会社所有は、空欄 としたいのですが、Replaceで対応しようとしましたがエラーが出てしまい駄目でした。 他に方法ありますでしょうか? また、契約日のフィールドも下記のように変更したいのです。 契約日 1月10日 2月3日 1月3日 1月13日 契約日のフィールドの日付が1月中になっているものは2月1日とし、2月中のものは3月1日と請求日をこれも新しい別フィールドに記載したい。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- chayamati
- ベストアンサー率41% (260/624)
- chayamati
- ベストアンサー率41% (260/624)
請求日ですが、12月、大の月、小の月、うるう年があり、 これら全てに適用するため 請求日: ([契約日]-Day([契約日])+32)-Day(([契約日]-Day([契約日])+31)) でいかがでしょうか ※これは、ある日付から日を引くと、前月末になります。
- passers-by
- ベストアンサー率40% (40/98)
組み込み関数で IIf という関数があります。 ExcelなどでIF関数使ったことありませんか?それらとほぼ同じで、条件分岐をしたいときに使う関数です。 フィールド名:IIf( 条件式 , 真の時の値 , 偽の時の値 ) という記述の仕方をします。 契約番号の例で具体的に書くならば、 例) 契約種別 : IIf( LEFT([契約番号],1) = "R" , "部門契約" , "") 契約日の件は、その翌月の1日というルールでいいですか? ならば、IIfを使わなくても、 請求日: DateSerial(Year([契約日]),Month([契約日])+1,1) とすればできそうです。 DateSerial関数は DateSerial( 年 , 月 , 日) を日付型にして返してくれる関数です。 月のところを契約日の翌月なので 契約日の月+1 、日は1日固定で 1 を指定しています。
お礼
できました。ありがとうございました。助かります。
お礼
ありがとうございました。助かります。