アクセスのクエリの作成がわかりません(アクセスのバージョンは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
恐れ入りますが、ご回答の程宜しくお願いいたします。
No.1
- 回答日時:
下記でどうでしょう。
(確認無し)クエリのSQLビューにコピペしてください。
デザインビューに変更して自分で作った
SQLと比較してください。
---
select 商品明細テーブル.商品名,
iif(仕入先テーブル.名称 is null,"該当無し",仕入先テーブル.名称) as 仕入先名称
from 商品明細テーブル
left join 仕入先テーブル
on left(商品明細テーブル.商品コード,4) = 仕入先テーブル.コード
この回答への補足
o_chi_chiさん、
はじめまして、ご指南ありがとうございます。
o_chi_chiさんのSQLと比較してみたら、私のSQLが間違っていましたので、教えて頂いたSQLを実行した際に以下の警告メッセージが出て実行することができませんでした。
「結合式がサポートされません」
どのように対応すればよいでしょうか。
自分のしたい操作をクエリのデザインで設定するのではなく、SQLで記述しなければいけないのでしょうか。私は高度なSQLスキルがないので、、、何卒よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
クエリのデザインビューだけで作成したいなら、
クエリ作成画面で、テーブルを結合せずに、商品明細テーブルだけを表示しておいて、
フィールド欄に以下の式を入力してください。
仕入先名称: DLookUp("[名称]","仕入先テーブル","[コード] = """ & Left([商品コード],4) & """")
DLoopup関数は、直接テーブルを参照する関数なので、クエリ作成画面に仕入先テーブルを含める必要はありません。
ただしこの方法は、該当なしの場合は「該当なし」ではなく空白(Null)になります。
どうしても「該当なし」と出したい場合は、ちょっと冗長ですが、
仕入先名称: IIf(DLookUp("[名称]","仕入先テーブル","[コード] = """ & Left([商品コード],4) & """") Is Null,"該当なし",DLookUp("[名称]","仕入先テーブル","[コード] = """ & Left([商品コード],4) & """"))
とするか、
#1さんのように、直接SQLビューに記述するしかないでしょう。
nag0720さん、
ご指南ありがとうございます。
DLoopup関数のやり方で問題が解決する事ができました!!!
当方はSQLを記述することが苦手なので、ご指南どおりのやり方で対応することにしました。
助かりました、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- その他(データベース) accessについて 2 2022/05/31 16:58
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- SQL Server SQLのクエリの書き方 1 2022/03/29 23:06
- Visual Basic(VBA) VBAで最新のデータを別シートに転記する方法をお教えください。 3 2022/04/07 19:20
- Excel(エクセル) Excelの操作方法を教えてください!頭文字2~8文字で特定の値に返す方法 8 2022/07/14 11:26
- Excel(エクセル) ある文字を含む際に、値を返す数式についてです 5 2022/08/28 16:58
- Visual Basic(VBA) EXCEL関数LOOKUPとFILTERについての質問です 1 2022/12/21 05:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
2つのテーブルから条件に一致...
-
重複するキーから一番古い年月...
-
商品コード番号を入力すると商...
-
PLSQLの識別子エラー
-
ACCESS 一つのフィールドに複...
-
Inner join と Left joinの明...
-
請求と入金のテーブルの作成の...
-
片方だけ抽出する方法(SQL)
-
行方向のデータを横に並べる
-
続.ORACLEのSELECTのソートに...
-
日付の最大値を検索条件にする方法
-
Accessでフィールドを比較した...
-
ACCESS 一番最新の日付の金額...
-
オラクルではできるのにSQLSERV...
-
ACCESSのSQLで、NULLかNULLでな...
-
クエリのキャンセルがいつにな...
-
データの二重表示の原因
-
accessのロック
-
symfowareのSQL文in句をバッチ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
2つのテーブルから条件に一致...
-
重複するキーから一番古い年月...
-
ACCESS 一つのフィールドに複...
-
PLSQLの識別子エラー
-
主キーの変更
-
Accessでフィールドを比較した...
-
SQL 2つのテーブルとSUBSTRING...
-
続.ORACLEのSELECTのソートに...
-
行方向のデータを横に並べる
-
下記のsqlで取得されるレコード...
-
VIEWでテーブルの集計結果...
-
update文で質問です。 下記の条...
-
[Oracle] UPDATE分の副問い合わ...
-
片方だけ抽出する方法(SQL)
-
自分自身への矢印
-
連番のMin, Maxを取得したい
-
Accessユニオンクエリーで2つ...
-
日付の最大値を検索条件にする方法
-
Inner join と Left joinの明...
おすすめ情報