• 締切済み

ACCESSでの置換で質問です。

クエリで特定のフィールドの値を置換するようにしていますが、完全一致ではなく一部に特定の文字があった場合、別の名前に置換したいです。 元データ 契約番号 R00332 R00224 R00553 個人所有 会社所有 上記の契約番号のフィールドを下記のように新しい別フィールドに置換したい。 Rが入っている数字は、部門契約 個人所有は、空欄 会社所有は、空欄 としたいのですが、Replaceで対応しようとしましたがエラーが出てしまい駄目でした。 他に方法ありますでしょうか? また、契約日のフィールドも下記のように変更したいのです。 契約日 1月10日 2月3日 1月3日 1月13日 契約日のフィールドの日付が1月中になっているものは2月1日とし、2月中のものは3月1日と請求日をこれも新しい別フィールドに記載したい。 

みんなの回答

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.3

No.2です。 1.置換  クエリのデザインモードで【更新】ツールをクリックすると  レコードの更新行が追加されます。  ここへReplce関数を使います。  添付はoffice2003をoffice2010に置き換えます。  Replace(Nz([ソフト名]),"2003","2010") 2.請求日の計算  前回の回答なぜか1月の契約日だけ請求日が2月になりません。  請求日:([契約日]-Day([契約日])+32)-Day(([契約日]-Day([契約日])+32))+1  と訂正下さい

seisei1016
質問者

お礼

ありがとうございました。助かります。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.2

請求日ですが、12月、大の月、小の月、うるう年があり、 これら全てに適用するため 請求日: ([契約日]-Day([契約日])+32)-Day(([契約日]-Day([契約日])+31)) でいかがでしょうか ※これは、ある日付から日を引くと、前月末になります。

回答No.1

組み込み関数で IIf という関数があります。 ExcelなどでIF関数使ったことありませんか?それらとほぼ同じで、条件分岐をしたいときに使う関数です。 フィールド名:IIf( 条件式 , 真の時の値 , 偽の時の値 ) という記述の仕方をします。 契約番号の例で具体的に書くならば、 例)  契約種別 : IIf( LEFT([契約番号],1) = "R" , "部門契約" , "") 契約日の件は、その翌月の1日というルールでいいですか? ならば、IIfを使わなくても、 請求日: DateSerial(Year([契約日]),Month([契約日])+1,1) とすればできそうです。 DateSerial関数は DateSerial( 年 , 月 , 日) を日付型にして返してくれる関数です。 月のところを契約日の翌月なので 契約日の月+1 、日は1日固定で 1 を指定しています。

seisei1016
質問者

お礼

できました。ありがとうございました。助かります。

関連するQ&A

  • ACCESSのエラーで質問です。

    ACCESSでクエリを作成して、テーブルの内容を置換していますが、下記のエラーが出てしまいます。 #エラー やりました作業としては、フィールド内に入っている情報を置換したい為、クエリで別フィールドを作成して、そこの値を置換するようにしています。 VBというフィールドに「移」と入っていたらウィルスバスターライセンス移管と変換し、「1」入っていたらウィルスバスターライセンス購入となるようにする為です。 ただし、空欄もあるのですがその空欄に上記のような#エラーが出てしまいます。 ビルドを使用して、VB(1): Replace(Replace([vb],"移","ウィルスバスターライセンス移管"),"1","ウィルスバスターライセンス購入")と入力しました。 移と1は問題なく変換されたのですが、空欄のところが#エラーとなってしまいます。何か解決方法はありますか?

  • ACCESSのデータ置換について

    ACCESS初心者です。VB2010からACCESSファイルに種々のデータ登録を行っていたのですが フィールドで『日付』と『時間』を別々に管理をしていたら『時間』フィールドに日付が入っていない状態なので全て1899年12月30日の時間で認識されてしまいます。 過去データを 日付:2012/09/26   時間:17:00:00 を 日付:2012/09/26   時間:2012/09/26 17:00:00 の様に置換するいい方法があるでしょうか? ご教授お願いします。

  • ACCESSで質問です。

    クエリで、特定のテーブルから情報を抽出していますが、下記のようなデータが入っており、 単純にテーブル名とフィールドで選択しているのですが、-が入っている情報だけ抽出できません。 何か条件等で解決できますでしょうか? 見積番号 328357 249844 228711 34G00-23 上記のように-が入った見積番号だけ抽出できない状況です。 フィールドの形式も確認しましたがテキストになっていて特におかしいところはないようなのですが・・・

  • 二重引用符の置換処理に関して

    エクセルで特定のセルに二重引用符が入力されていた場合、“を““のように置換させたいです。 しかし、下記ソースではエラーが発生してプログラムが動きません。 Columns("J:O").Replace What:="“", Replacement:="““", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False どうすれば正常に置換することが出来るでしょうか? 宜しくお願いします。

  • ACCESSで質問です。

    ACCESSの更新クエリで、特定のセルないの情報を下記のように変更したいのですが リースステータスというセル内には、48と買取と買取(海外)の3つの文字が入っています。 48と書いてあるものだけをリース中と表示させ、その他の買取と買取(海外)と書かれるいるものは 空欄にしたいのですが、下記の構文だけだと買取と買取(海外)の文字は残ってしまうので、買取と買取(海外)の文字を削除する構文を追加したいです。 リースステータス(1): IIf(IsNull([区分]),Null,Replace([区分],"48","リース中"))

  • ACCESSで必要ない文字を消す方法

    列の中には「L321111」のようなリース契約番号と「買取」と「(海外)」という文字が記載されています。 例: L321111    買取    (海外)    L231444 上記のL~始まる文字以外を空欄にしたいのですが、買取は消えるのですが(海外)を消すためにはどのように構文に追加すればいいでしょうか? クエリで下記の構文を記載しました 式1:IIf(IsNull([リース契約番号]),Null,Replace([リース契約番号],"買取",""))

  • 文字+改行コードの置換について

    文字+改行コードの置換についてご教授ください。 テキスト内の数字「9」とそれに続く改行コードのみ置換(削除)対象にしています。 全ての改行コードが対象ではないため、下記のようにエディタ(sakuraエディタ)で指定しました。 置換前: 9\r\n ※削除したいため、置換後の欄は空欄にしています。 しかし、この設定だと置換前の文字列を置換対象として認識しません。(検索対象としても) \r\n だけだと改行コードを認識するので、文字と改行コードのセットを認識していないようです。 指定に誤りがあるのでしょうか。詳しい方ご教授お願いします。

  • accessでcsvファイルをインポートする時…

    access 2003で質問です。 次のようなcsvファイルをインポートしたいと思っています。 (左から順に 個人番号,氏名,血液型,出身 となっているが、空欄になっているところもある) 001,A山太郎,A型,千葉県 002,B田次郎,北海道 C川三郎,O型,東京都 何も考えずにインポートすると、個人番号のフィールドに氏名が入ったり氏名のフィールドに血液型が入るフィールドが出てきます。 これを、個人番号がなければそこは空欄にするよう自動判別する方法はありますでしょうか? もしもありましたら、初歩からご教授願います。 (始めたばかりですので…)

  • AS3.0 タグ内の文字列を置換

    Flash Pro CS5 AS3.0 で記述しています。 He <font color ="#00FFFF">gose</font> to library. という文章が bunsyo という変数に入っています。 外部xmlから取得し、この型はxmlです。 ここで、 He <font color ="#00FFFF">gose</font> to library. を He <font color ="#00FFFF">_______</font> to library. 又は He ________ to library. のように書き換えたいと思っています。 そしてそれをテキストフィールドに入れます。 空欄を見せて考えさせ、あとで元の文章(それが答え)を表示したいと考えています。 正規表現を使い var result:String = bunsyo.replace(/ >.+< /, "_____"); trace(result); と記述しましたが何も変化がありませんでした。。 型がxmlなのでstringにしないと置換してくれようです; テキストフィールドに入れる際に<font color ="#00FFFF"></font>のタグが使えなくなるので できればそのまま置換したいのですが… 型がxmlのまま置換するにはどのようにすればいいのでしょうか。 また,もし他にもタグを識別して置換するか文字を置換or抜き出す(今回はgose)方法がありましたら教えていただきたいです。 よろしくおねがいします。

    • ベストアンサー
    • Flash
  • 【Access】特定の顧客のみ集約して集計する

    Access2010で下記のような条件で集計をしたいと思っています。 ------------------------------- テーブル1 フィールド(1):顧客番号 フィールド(2):売上金額 フィールド(3):売上月 001/100円/1月 002/ 50円/1月 003/200円/1月 004/150円/1月 テーブル2 フィールド:(1)顧客番号 フィールド(2)集約先(顧客番号) 001/002 002/003 ★完成クエリ フィールド(1)顧客番号(集約) フィールド(2)売上金額 フィールド(3)売上月 003/350円/1月 004/150円/1月 ------------------------------- 顧客番号ごとの売上金額を集計しますが、 その際、集約先を持つ顧客番号については、 集約先を参照し、顧客番号(集約)という括りで集計したいと思っています。 Excelだと、IF関数を使って「もし集約先セルが空欄なら顧客番号を参照してコピーする」等して、 顧客番号(集約)の列で括って集計する、と考えたりできるのですが、 Accessは不慣れなこともあって、なかなか良い方法が思いつきません・・・。 どうか集計方法をご教授いただけないでしょうか。 よろしくお願いします。

専門家に質問してみよう