
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には詳しくないので、クエリのデザインビューで紐付ける程度のことしかやっておりません。お手数をお掛けしますがよろしくお願いいたします。)
No.3
- 回答日時:
質問表現があいまいだが、1(というか各レコードというか)レコードの1フィールドにおいて、/で区切られた文字列のうちのどれか1つが這いいているということですよね。
エクセルでは決った空きの列のせるに項目と隣列に対応コードを入力し、VLOOKUP関数で簡単に索引できる課題ですが、アクセスはVLOOKUPはなく、DLOOKUPは似ているといえます。
しかしアクセスでは文言とコードの対応表をテーブルとしてもって、クエリの画面で
テーブル コード振り
ID文言コード
1aa1
2bb1
3cc2
4dd3
5ee2
6ff2
7gg1
質問ではaa は「在庫あり」にあたる(漢字入力手抜きでこうした)。
ーーー
テーブル 文言索引で
IDコード文言
1aa
2bb
3cc
4ff
5dd
6ee
とあるとする。コード列は空白。
ーーー
クエリで
tableの表示 コード振りと文言索引
文言と文言を結合線を引いておく
コードフィールドで
ビルド画面を出して、
コード: DLookUp(コード振り.コード,"コード振り",コード振り.文言=文言索引.文言)
を入れて、OK
クエリ実行で
IDコード文言
11aa
21bb
32cc
42ff
53dd
62ee
とコードのフィールドにコードが振られる。
クエリをテーブル化も可能。
ーーーー
質問者は、エクセル式発想がアクセスでも、前に出すぎているようだ。
ご回答ありがとうございます。
確かにおっしゃるとおり、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が見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Accessのクエリで、replace関数を使い、データの中にある”をブランクに置き換えたいのですが
Access(アクセス)
-
Accessで、1つの項目に複数の置換えを1度でするには?
Access(アクセス)
-
Accessで複数(200件程)の置換
Access(アクセス)
-
-
4
Access リストから文字の置換(Replace)
Word(ワード)
-
5
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
6
Accessで、『A"以外の場合"--"に置き換える』という作業をしたいのですが、良い方法はありま"
Access(アクセス)
-
7
[Access2000] Replace関数がない?
Access(アクセス)
-
8
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
9
クエリで「データ型が一致しません」と表示される
その他(データベース)
-
10
【ACCESS/必須条件とOR条件を組み合わせる】
その他(Microsoft Office)
-
11
ACCESSで値を代入できないとは?
Visual Basic(VBA)
-
12
ACCESS 「パラメータの入力」を消したい!!
Access(アクセス)
-
13
Accessの画面更新を一時的に停止する方法。
その他(データベース)
-
14
途中で処理を中断させたい (アクセスVBA)
Access(アクセス)
-
15
「#エラー」の回避
Access(アクセス)
-
16
OR関数
その他(Microsoft Office)
-
17
Access2000での未定義関数replaceのエラー表示
その他(Microsoft Office)
-
18
iif関数で3つ以上条件を抽出したい場合
IT・エンジニアリング
-
19
Access で 特定の文字の個数をしりたい
Access(アクセス)
-
20
Accessのクエリで、抽出条件で…のエラーが
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MessageBoxで表示される文字列...
-
エクセルに見えない文字(JISX0...
-
1日に1人がこなせるプログラム...
-
ユーザーフォームに2つのコン...
-
MIPSコードへの変換
-
ACCESSユニオンクエリでORDER B...
-
フィルターかけた後、重複を除...
-
access2021 VBA メソッドまたは...
-
Nullの使い方が不正です。
-
Visual BASIC イベント作成しよ...
-
Excelシート上で右クリックがで...
-
JANコードとPOSコードは同じ?
-
【VB6】実行ファイルとした後、...
-
コンボボックス3つを連動させたい
-
Excel VBAについて
-
スキャンコード取得は MapVirtu...
-
C# コードビハインドについて
-
COBOLの文法
-
欠番の抽出について
-
Access DCountでの連番について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
1、Rstudioで回帰直線を求める...
-
access2021 VBA メソッドまたは...
-
1日に1人がこなせるプログラム...
-
JANコードとPOSコードは同じ?
-
エクセルに見えない文字(JISX0...
-
変数名「cur」について
-
access2003 クエリSQL文に...
-
Excelシート上で右クリックがで...
-
【VB6】実行ファイルとした後、...
-
COBOLの文法
-
Exel VBA 別ブックから該当デ...
-
JavaScriptの定数名が取り消し...
-
C# コードビハインドについて
-
JIPS-Eコードのコード表について
-
Nullの使い方が不正です。
-
PreviewKeyDownイベントが2回...
-
VBAでファイルオープン後にコー...
-
ユーザーフォームに2つのコン...
-
ACCESSユニオンクエリでORDER B...
おすすめ情報