• ベストアンサー
  • 困ってます

AccessでReplace関数を使うときに…

Access2003を使っています。 1つのフィールドに入っている文字列が何種類かあります。 ここでは10種類あるとします。 それぞれ、 在庫あり/在庫わずか/お取り寄せ/商品なし/販売終了/品切れ中4月21日入荷/品切れ中5月14日入荷/品切れ中6月1日入荷/品切れ中7月31日入荷/品切れ中8月31日入荷/ これを、在庫あり/在庫わずか/お取り寄せ は「0」に、それ以外は「1」にしたいのです。 いろいろ調べた結果、Replace関数というものを知り、使ってみたのですが、 Replace(Replace(Replace(Replace(Replace(Replace([在庫],"在庫あり","0"),"在庫わずか","0"),"お取り寄せ","0"),"商品なし","1"),"販売終了","1"),"品切れ中*","1") としても、最後の「"品切れ中*"」がうまく働きませんでした。どうやら「*」は使えないようです。 ただ、10種類ならまだ10回カッコを書いていくだけでいいですが、品切れ中の日付が100日分などとなるとそうも行きません。ですので何かいい方法をお持ちの方、おしえていただけませんでしょうか?よろしくお願いいたします。 (特にReplace関数にこだわっているわけではありません。ただ、あまりAccessには詳しくないので、クエリのデザインビューで紐付ける程度のことしかやっておりません。お手数をお掛けしますがよろしくお願いいたします。)

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数740
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1

随分難しく考えていらっしゃる様ですが、下記程度ではいかがでしょうか。ご参考まで。 式1: IIf(([在庫] Like "在庫*") Or [在庫]="お取り寄せ",0,1)

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございます。 そうですまさにこういうことをやりたかったのです。どうやらIIFは基本的なことのようですね…。でも知らなかった私にはとてもありがたかったです。どうもありがとうございました。それからもうちょいAccess勉強します。

関連するQ&A

  • 英訳

    この商品は在庫がないとのことですが、販売終了とのことでしょうか? それとも生産待ちで販売予定はあるのでしょうか? 販売予定があるのであれば、いつ頃になるのか教えて下さい。

  • このお店は信用できると言えますか?

    先日、商品□□のカラーAとカラーBをあるネットショップで注文しました。 本当はたくさんの個数ほしかったのですが、 在庫が少なく、販売しているだけの数を注文しました。 その後すぐ、メールにて問い合わせました。 私:いま商品□□のカラーAとカラーBは「完売」表示になっている。再入荷の予定はあるか? ↓ 店:現在仕入先に発注中。納期は未定。 ↓ 私:何個発注したのか?大まかな納期だけでもわからないか? ↓ 店:最初の店員が在庫確認をせず返答してしまった。   Aの予備在庫が○個あるとわかったので、アップした。   在庫限りで販売終了予定品。次の入荷はない。 ↓ 私:次の入荷はないと言うが、「発注中」との回答をもらった分はどうなっているのか?   Bの予備在庫はなかったのか? ↓ 店:最初に対応した店員が何か勘違いしていると思われるが、   今日は出勤していないので詳細は不明。   Bの予備在庫も○個見つかったから、アップした。   これも在庫限りで販売終了予定品。次の入荷はない。   さらに、 該当商品の購入者レビューを見ていると 2~3ヶ月前のレビューに「これは在庫限りの品と聞いた」 と書いている人がチラホラいます。 レビュアーが購入した後~~私が購入するまで 在庫が切れなかったのか否かは まったくもって知るすべがありませんが、 「在庫限り」と言っては、またすぐに補充して販売している業者も 実在しますよね…。 店員さんによって言うことに食い違いがあったり、 「予備在庫が見つかった!」 とか、 最初からAB両方の問い合わせをしているのに Aだけの回答を送ってきたり・・・ などということは よくあることなのでしょうか? 不信感を持つほうがおかしいですか? 「じゃあ、その店で買うのをやめればいいだけ」という方が出てきそうですが、 そういったご意見はパスしてください。 他ではなかなか手に入らない物が売っているので、魅力的な店ではあります。 この先、利用を控えるかどうか大変迷っています。 皆様のお考えをお聞かせください。 よろしくお願いします。

  • EYECASEの在庫ある店舗知りませんか?

    グローブしたまま容易に開けられ、自動的に開く素敵なギミック。 ずっと欲しいと思ってて、いざ買いに行こうと思ったら販売終了。 どこの店もどこの通販サイトも「在庫0」「取り扱いを終了しました」。 製造元が製造終了してしまったようで、新規入荷の予定もなし。 どこかに在庫ある関東の店舗、または全国の通販サイト、ご存じありませんか?

その他の回答 (2)

  • 回答No.3
  • imogasi
  • ベストアンサー率27% (4592/16442)

質問表現があいまいだが、1(というか各レコードというか)レコードの1フィールドにおいて、/で区切られた文字列のうちのどれか1つが這いいているということですよね。 エクセルでは決った空きの列のせるに項目と隣列に対応コードを入力し、VLOOKUP関数で簡単に索引できる課題ですが、アクセスはVLOOKUPはなく、DLOOKUPは似ているといえます。 しかしアクセスでは文言とコードの対応表をテーブルとしてもって、クエリの画面で テーブル コード振り ID 文言 コード 1 aa 1 2 bb 1 3 cc 2 4 dd 3 5 ee 2 6 ff 2 7 gg 1 質問ではaa は「在庫あり」にあたる(漢字入力手抜きでこうした)。 ーーー テーブル 文言索引で ID コード 文言 1 aa 2 bb 3 cc 4 ff 5 dd 6 ee とあるとする。コード列は空白。 ーーー クエリで tableの表示 コード振りと文言索引 文言と文言を結合線を引いておく コードフィールドで ビルド画面を出して、 コード: DLookUp(コード振り.コード,"コード振り",コード振り.文言=文言索引.文言) を入れて、OK クエリ実行で ID コード 文言 1 1 aa 2 1 bb 3 2 cc 4 2 ff 5 3 dd 6 2 ee とコードのフィールドにコードが振られる。 クエリをテーブル化も可能。 ーーーー 質問者は、エクセル式発想がアクセスでも、前に出すぎているようだ。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございます。 確かにおっしゃるとおり、ExcelとAccessとごっちゃになるときがよくあります。出来る人はちゃんとそのあたりも区別されているんですね。関数についてはもっと勉強しないとなあとひしひしと感じました。どうもありがとうございました。

  • 回答No.2

標準モジュールに以下を保存します。 Function funcJudge(str As String) As Integer Select Case str Case "在庫あり" funcJudge = 0 Case "在庫わずか" funcJudge = 0 Case "お取り寄せ" funcJudge = 0 Case Else funcJudge = 1 End Select End Function この関数をReplace関数のかわりに使用します。 たとえば、クエリで、 SELECT テーブル1.在庫, funcJudge([在庫]) AS 判定 FROM テーブル1; のように。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございます。 なるほどモジュールを使ったやり方もあるんですね。勉強になります。正直ぱっと見では理解が出来ませんが、ちゃんと復習して理解したいと思います。どうもありがとうございました。

関連するQ&A

  • ACCESSのクエリの作り方

    テーブル名   在庫 商品コード 品名 入庫日 在庫量 ・・・ があります データとして A0000,在庫品1,2005/10/10,50 A0000,在庫品1,2005/12/25,70 A0000,在庫品1,2005/12/28,20 B0000,在庫品2,2005/12/28,10 B0000,在庫品2,2005/12/29,5 C0000,在庫品2,2005/12/30,30 という具合になります。 入庫日の都合上、商品コードがユニークになりません。 この場合 フォームを作って 商品コードをユーザーに入力させ、在庫量を表示させるにはどうしたら良いのでしょうか? 例えば"A0000" だと140になります。 SQLで商品コード=ユーザー入力文字列・・・ とかいうのは知っているんですがACCESSの使い方がよくわかりません、 デザインビューでクエリを作成するとかやるとこの場合固定(商品コードが)されて しまうようです。ユーザーに求めることは出来るのでしょうか?

  • 日付の範囲検索で

    ACCESSで商品の販売管理システムを作っています。 商品マスタの中に、販売開始日、販売終了日のフィールドがあるのですが、常時販売している商品はこのフィールドは空になっています。 また、今まで販売していたけど近々終了する商品や、近々販売を開始するけど、終了が未定の商品は片方に日付が入り、もう片方は空になっています。 こういう状態で指定した日にちに販売されている商品の一覧を作りたいのですが、where の書き方が分かりません。 何も考えずに書くと、以下のようになると思います。 SELECT 商品マスタ.* FROM 商品マスタ WHERE (販売開始日 IS NULL AND 販売終了日 IS NULL) OR (販売開始日 IS NULL AND 販売終了日 >= #2003/12/15#) OR (販売開始日 <= #2003/12/15# AND 販売終了日 IS NULL) OR (販売開始日 <= #2003/12/15# AND 販売終了日 >= #2003/12/15#) ちょっと長いので、もっとスマートに書く事はできないものでしょうか。 よろしくお願いします。

  • サンリオの商品、発売前に予約出来るのでしょうか?

    サンリオの商品、発売前に予約出来るのでしょうか? 公式サイトにて発売予定の新商品をチェックしていて、欲しい商品を見つけました。 ところが発売日から2日後である日曜日にショップ行ったら既に品切れでした。 以前にも同じような事があり、結局実物を見ること無く販売終了となってしまいました。 平日は仕事の為お店にいけません。 確実に手に入れる方法はあるのでしょうか。

  • 過去の商品ページは削除しない方がいいのか?

    ネットショップやってます。不定期的に新商品を扱うのと同時に、販売終了となった商品もあります。 販売終了になった商品ページなのですが、削除した場合はSEO的にはよくないのでしょうか? そのページをリンクとして貼ってくれていたページ、ブログなどは死にリンクとなってしまいますし。 その販売終了商品のページからTOPページに自動的に飛ばすか、 そのまま「販売終了」としてページを残すのか、 すべて削除してしまうのがよいのか、 SEO的な見解からするとどれが良いのでしょうか?

  • エクセルの関数について

    一つのセルに二つの計算式を入れる場合には、どうすればよいでしょうか。エクセルで商品の在庫管理表を作成したく、入荷を記入する列と、出荷を記入する列、在庫数の列を設け、在庫数の列に、入出荷の自動計算が入るようにしたいと思っております。IF関数を使ってみたのですが、うまくできず、どなかた教えていただけますようお願いいたします。

  • 携帯

    携帯ショップにて 販売終了ってシールが 貼られてる携帯は 入荷もしないって事ですか? (docomo)

  • Accessの文字列部分一致を合計する関数

    お世話になっております。 Access2003の関数で教えてください。 Acces2003のクエリで、 「同じフィールド内で文字列が部分一致した場合、新しいフィールドに 別のフィールドにある数値を合計する、部分一致しない場合は合計せず、 そのままの数値を表示する」 という関数を設定したいと思っております。 具体的に記載しますと、 在庫テーブルがあり、 商品コード 在庫  aaa      10 bbb      20 ccc      15 ddd      30 aaa-1    40 bbb-1    25 ddd-1    20 というデータが入力されております。 この在庫テーブルから新しいクエリで、新しく「在庫合計」フィールド を作成し、このフィールドに関数を用いて、 『「商品コード」フィールドの左3文字が一致した場合、「在庫」フィールドの 数値を合計する数値を表示させ、一致しない場合は合計せずそのままの 数値を表示する』 という形です。 クエリの実行結果としては 商品コード 在庫 在庫合計 aaa      10   50 bbb      20   50 ccc      15   15 ddd      30   50 bbb      5   50 aaa-1    40   50 bbb-1    25   50 ddd-1    20   50 という結果になり、商品コード「aaa」と「aaa-1」や「bbb」と「bbb-1」の「在庫合計」の値 は同じ値(「在庫」フィールドを合計した数値)が表示され、左3文字が一致したデータ がない「ccc」は15のまま、という結果です。 ※ただ、商品コードに重複がございます。(上記例でいうと商品コードが「bbb」です。) 当方VBAは使えないので、クエリで行いたいと思っております。 Accessで難しければExcelの関数でも構いません。 当方初心者ですので、不足な情報がございましたら加筆いたします。 どうぞよろしくお願いいたします。

  • 注文実績データを元に、最適発注数を予測するには?

    約1000点ほどの商品をネットショップで販売しています。仕入の取引先は約20社といったところです。 すべての商品に商品コードを割当てており、日々の出荷数を記録しているため、商品ごとのデイリーの出荷数データがExcelシートにまとめられています。 商品は「在庫品」「お取り寄せ」「入荷待ち」の3種類に分かれていて、「入荷待ち」はメーカー都合で仕入れに時間がかかる一部の商品で、来月中旬入荷予定などとサイトに記載しています。在庫品の場合は平日14時までの注文を即日発送しており、お取り寄せの場合は、注文を受けてからメーカーに発注する形になりますが、1~2営業日以内に入庫が可能な体制です。 やはり「在庫品」は人気があり、即日発送されるため購入申込率が「お取り寄せ」よりは高いようです。その一方で、人気のある商品とそうでない商品はある程度二極化しているので、めったに売れない商品は在庫日数が多くなるばかりのため、消費期限切れのリスクもあることから、ほとんどの場合、注文を受けてからメーカーに発注する形を摂っています。 また各仕入元ごとに、最低発注金額や、送料無料サービスをしてくれる発注金額が決まっています。 最低発注金額は3千円から1万円、送料サービス金額は2~3万円といったところで、最低発注額をクリアするためには、注文を受けた商品以外も注文せざるをえない場合があり、またできれば送料サービス金額以上の発注を行うことで、発注コストを抑えたいところです。 これらの条件や、実績データを元に注文数予測をして、なるべく在庫をせずに、なるべく発注コストを抑えた形で、発注するにはどうすればよいか?これが課題になっています。 こうした課題をクリアするためによい、ソフト、あるいはExcel関数やVBAなどで対処する方法など、色々なアプローチを模索しています。良い方法を教えてもらえないでしょうか?

  • 百均ショップはどうしてバーコードを使用しないのでしょうか?

    百均ショップのレジでは、商品の数をかぞえるだけで、バーコードを使用しません。 在庫管理ができなくて困ったりしないのでしょうか? 店員に品切れ商品がいつ入荷するか訊ねても、わかりませんというような返事しかもらったことがありません。 よろしくお願いします。

  • 販売終了商品の広告を出し続ける理由

     購入予定の商品を著名家電量販店のサイトで探していると、「販売終了しました」という表示がやたらと目に付くため他の商品ジャンルも見るとやはり「販売終了しました」と表示されているものが相当な割合になっていました。何故販売終了した商品の広告を出し続けるのかと腹立たしい気持ちになり他の著名量販店のサイトを見るとやはり販売終了商品の広告が相当な割合を占めている上にこちらの広告では販売終了商品の殆どが「限定数完売」と表記されてます。  販売終了したのにいつまでも広告を出し続けるというのはネット広告の場合には商品名で検索ッするとヒットしますから、広告ページへ誘導するための手段として使っているのでしょうか。