
クエリ1とクエリ2をクエリ3で結合するとクエリ3で「データ型が一致しません」と表示されます。
クエリ1のSQL文
SELECT Trim(Replace([PC管理台帳.使用者氏名]," ","")) AS 式1, PC管理台帳.新PC名, PC管理台帳.部署名, PC管理台帳.マシンベンダ名, PC管理台帳.マシンモデル
FROM PC管理台帳;
クエリ1では[使用者氏名]の苗字と名前のスペースを置換しました。
クエリ2のSQL文
SELECT 職員アカウント.職員番号, Trim(Replace([職員アカウント.氏名]," ","")) AS 式1, 職員アカウント.パスワード, 職員アカウント.メールアドレス
FROM 職員アカウント;
クエリ2では[氏名]の苗字と名前のスペースを置換しました。
クエリ3で[使用者氏名]と[氏名]が一致しているものを抽出したいです。
ちなみにクエリ3のSQL文は
SELECT [クエリ2].[式1], [クエリ2].[職員番号]
FROM クエリ1 INNER JOIN クエリ2 ON [クエリ1].[式1]=[クエリ2].[式1];
これでクエリ3をひらくと
「データ型が一致しません」
と表示されます。
どなたかアドバイスお願いします
No.1ベストアンサー
- 回答日時:
「データ型が一致しません」のエラーが発生するパターンのひとつに、『結合に使用している演算
フィールド(ご質問の件では式1が該当)の結果がエラーとなるレコードが含まれている』というのが
あります。
クエリ1・クエリ2の式1にはReplace関数が使われていますが、Replace関数の第1引数にNullを
指定すると、エラーになります。
従って、恐らく「PC管理台帳」テーブルの「使用者名」か、「職員アカウント」テーブルの「氏名」の
どちらか(或いは双方)が、空欄(Null)になったままのレコードがある可能性があります。
(なお、Trim関数は、第1引数がNullであってもエラーになりません)
上記推測が当たっていれば、
a)上記フィールドが空欄になっているレコードをなくす
(その上で、今後のことを考えると値要求を「はい」に設定しておくことをお勧めします)
b)式1の関数を下記のように変更する
のどちらかの対応をされれば、ご質問のエラーは解消されるものと思います。
式1の変更で対応する場合は、それぞれ以下のようにしてみてください:
(「[PC管理台帳.使用者名]」と「[職員アカウント.氏名]」は、それぞれ「[PC管理台帳].[使用者名]」と
「[職員アカウント].[氏名]」の誤記と判断して記述しています)
クエリ1:
Select Replace(Nz([PC管理台帳].[使用者氏名], ""), " ", "", 1, -1, 1) As 式1, PC管理台帳.新PC名, PC管理台帳.部署名, PC管理台帳.マシンベンダ名, PC管理台帳.マシンモデル From PC管理台帳;
クエリ2:
Select 職員アカウント.職員番号, Replace(Nz([職員アカウント].[氏名], ""), " ", "", 1, -1, 1) As 式1, 職員アカウント.パスワード, 職員アカウント.メールアドレス, From 職員アカウント;
Nz関数は、第1引数がNull(=文字列扱い不可の空白)だった場合に、第2引数の値に置換する関数
です。第2引数に「""」(空文字=文字列扱い可の空白)を指定することで、Replace関数がエラーに
なるのを回避しています。
Replace関数の一番最後の引数「1」は、半角/全角を区別させないためのものです。これにより、
スペースは全て削除されるため、Trim関数は不要になります。
(その前の「1, -1」は、それぞれ開始位置と置換する文字数の指定です。この辺りは、詳しくは
ヘルプを確認して下さい)
丁寧な説明ありがとうございました。
よろしければ下記の質問もお願いします。
http://oshiete1.goo.ne.jp/qa3987087.html?ans_cou …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
抽出条件でデータ型が一致しません。のエラーメッセージが出る
Microsoft ASP
-
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
4
ACCESS抽出条件でデータ型が一致しません
その他(暮らし・生活・行事)
-
5
Accessでクエリを作成したら・・・
Access(アクセス)
-
6
Accessで、1つの項目に複数の置換えを1度でするには?
Access(アクセス)
-
7
実行時エラー '3464': 抽出条件でデータ型が
Access(アクセス)
-
8
ACCESS IIF関数 複数条件の設定について
Excel(エクセル)
-
9
OR関数
その他(Microsoft Office)
-
10
Accessで「型が一致しません」エラーが出る
Excel(エクセル)
-
11
アクセスVBAのMe!と[ ]
Access(アクセス)
-
12
ACCESS 「パラメータの入力」を消したい!!
Access(アクセス)
-
13
Access2003 クエリで、空の列は作れますか?
Access(アクセス)
-
14
ACCESSでの改行コード
その他(データベース)
-
15
SQL文をVBAで流すと「型が一致しない」というエラーが
Visual Basic(VBA)
-
16
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
17
アクセス VBAについて FROM句の構文エラー
Access(アクセス)
-
18
インポート時のエラー「データ型の変換エラー」
Access(アクセス)
-
19
エラー(型が一致しません。)の対処方法
Visual Basic(VBA)
-
20
アクセスのエラー「クエリには出力フィールドが1つ以上必要です。」
その他(Microsoft Office)
関連するQ&A
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
access・カウント結果がゼロで...
-
5
ACCESS のクエリー実行に異常に...
-
6
クエリで「データ型が一致しま...
-
7
アクセスでフォームが更新でき...
-
8
access:連続データ入力
-
9
ACCESSでクエリを作成したら「...
-
10
ACCESSにてフィールド間の最小...
-
11
SqlServer2012 ビューとクエリ
-
12
access SQLの抽出結果をFilter...
-
13
長いSQL文を見やすくするツ...
-
14
accessのレポートであとから他...
-
15
アクセスのフォームのビューが...
-
16
テーブルに主キーを作らないデ...
-
17
ACCESSで入力フォームをHTMLフ...
-
18
ACCESS レコードセット
-
19
ACCESSを開くと最初にフォーム...
-
20
AccessVBAを使用して、DB内を...
おすすめ情報