accessにて取引先会社テーブルがあり会社コード、会社名、住所などの情報が数千件あります。

Microsoft Access | Visual Basic69閲覧xmlns="http://www.w3.org/2000/svg">50

ベストアンサー

0

ThanksImg質問者からのお礼コメント

ご回答有難うございました。思っている形に出来そうです。本当にご丁寧なご教示有難うございました。

お礼日時:1/16 17:47

その他の回答(2件)

0

クエリだけで頑張ってみました。 ただし、対応する省略ワードは1回1パターンです。 会社名が「株式会社有限会社」とかすると省略対象がどちらか一方のみになり、結果は「有限会社」だけになるということです。 クエリも多段階になっています。 しかも特殊な結合のため、クエリデザインでは設定できず、SQLビューからの設定になります。 また、フィールド[会社コード]は数値型を想定です。 (1) 準備:テーブル「省略ワードテーブル」を用意します。 フィールドは[対象ワード](文字型)の1つだけで、そこ対象ワードを登録してください。 (2) クエリ1(SQLのみ) SELECT 会社コード, First(Replace([会社名],[対象ワード],"")) AS 省略会社名1, Count(*) AS 省略カウント FROM 取引先会社テーブル INNER JOIN 省略ワードテーブル ON 取引先会社テーブル.会社名 Like "*" & 省略ワードテーブル.対象ワード & "*" GROUP BY 会社コード; (3) 取引先会社クエリ(デザインビューでも可能) SELECT 取引先会社テーブル.*, Nz(DLookUp("省略会社名1","クエリ1","会社コード=" & [会社コード]),[会社名]) AS 省略会社名 FROM 取引先会社テーブル; 以上で「取引先会社クエリ」を実行させれば目的のものが現れるはずです。 また、対応する省略ワードを2回までにするならば、上記行程(3)移行を下記の通りにします。 (3) クエリ2(SQLのみ) SELECT 会社コード, First(Replace([省略会社名1],[対象ワード],"")) AS 省略会社名2 FROM クエリ1 INNER JOIN 省略ワードテーブル ON クエリ1.省略会社名1 Like "*" & 省略ワードテーブル.対象ワード & "*" WHERE 省略カウント>1 GROUP BY 会社コード; (4) クエリ3(SQLのみ) SELECT クエリ1.会社コード, クエリ1.省略会社名1 AS 省略会社名 FROM クエリ1 WHERE 省略カウント=1 UNION SELECT クエリ2.会社コード, クエリ2.省略会社名2 AS 省略会社名 FROM クエリ2; (5) 取引先会社クエリ(デザインビューでも可能) SELECT 取引先会社テーブル.*, Nz(DLookUp("省略会社名","クエリ3","会社コード=" & [会社コード]),[会社名]) AS 省略会社名 FROM 取引先会社テーブル; 以上、置換対象が3つ以上存在するなら (2)の「クエリ1」のフィールド[省略カウント]を参照して (3)パターンのクエリを増やしていけば対応は可能です。 (こんな文字長文だと、めんどくさく感じられますね)

画像