アプリ版:「スタンプのみでお礼する」機能のリリースについて

アクセスのクエリの作成がわかりません(アクセスのバージョンは2003です)

アクセスの初心者です。Webをみたり参考書を見たりしているのですが、、、クエリの作成方法が分からず困っております。どなた操作方法を教えていただけますか。お願いいたします。

抽出したいのは以下の1, 商品明細テーブルから「商品名」全件に対して「商品コード」の頭4桁をキーにして、仕入先テーブルのコードから「名称」を取得する方法です。


当方の作成したクエリは下記の通り操作しましたが、結果はすべて"該当なし"になってしまいます。

・クエリ作成画面で両テーブルを結合。
・フィールド欄に以下の式を入力しました
仕入先名称:iif(strcomp(Left([商品明細テーブル].[商品コード],4),[仕入先テーブル].[コード],0)=0,[仕入先テーブル].[

名称],"該当なし")

1, 商品明細テーブル
商品名価格商品コード
---------------------------
商品A\110AAA01115000
商品B\115AAA19376122
商品C\112AAA09472391
商品D\115AAA22947555
商品E\120AAA09422138
商品F\165AAA13871911
商品G\150AAA09272611
商品H\210AAA27319313


2, 仕入先テーブル
コード名称
AAA0XXXX商事
AAA1YYYY産業
AAA2(株)ZZZZ

恐れ入りますが、ご回答の程宜しくお願いいたします。

A 回答 (2件)

下記でどうでしょう。

(確認無し)

クエリのSQLビューにコピペしてください。
デザインビューに変更して自分で作った
SQLと比較してください。
---
select 商品明細テーブル.商品名,
iif(仕入先テーブル.名称 is null,"該当無し",仕入先テーブル.名称) as 仕入先名称
from 商品明細テーブル
left join 仕入先テーブル
on left(商品明細テーブル.商品コード,4) = 仕入先テーブル.コード

この回答への補足

o_chi_chiさん、

はじめまして、ご指南ありがとうございます。
o_chi_chiさんのSQLと比較してみたら、私のSQLが間違っていましたので、教えて頂いたSQLを実行した際に以下の警告メッセージが出て実行することができませんでした。

「結合式がサポートされません」

どのように対応すればよいでしょうか。
自分のしたい操作をクエリのデザインで設定するのではなく、SQLで記述しなければいけないのでしょうか。私は高度なSQLスキルがないので、、、何卒よろしくお願いいたします。

補足日時:2012/10/13 19:21
    • good
    • 0

クエリのデザインビューだけで作成したいなら、



クエリ作成画面で、テーブルを結合せずに、商品明細テーブルだけを表示しておいて、
フィールド欄に以下の式を入力してください。

仕入先名称: DLookUp("[名称]","仕入先テーブル","[コード] = """ & Left([商品コード],4) & """")

DLoopup関数は、直接テーブルを参照する関数なので、クエリ作成画面に仕入先テーブルを含める必要はありません。

ただしこの方法は、該当なしの場合は「該当なし」ではなく空白(Null)になります。
どうしても「該当なし」と出したい場合は、ちょっと冗長ですが、

仕入先名称: IIf(DLookUp("[名称]","仕入先テーブル","[コード] = """ & Left([商品コード],4) & """") Is Null,"該当なし",DLookUp("[名称]","仕入先テーブル","[コード] = """ & Left([商品コード],4) & """"))

とするか、
#1さんのように、直接SQLビューに記述するしかないでしょう。
    • good
    • 0
この回答へのお礼

nag0720さん、

ご指南ありがとうございます。
DLoopup関数のやり方で問題が解決する事ができました!!!

当方はSQLを記述することが苦手なので、ご指南どおりのやり方で対応することにしました。

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

お礼日時:2012/10/13 23:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!