
クエリ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も見ています
-
Accessのクエリで、replace関数を使い、データの中にある”をブランクに置き換えたいのですが
Access(アクセス)
-
sql update で 抽出条件データ型が一致しません。日付の未入力対策はありますか?
その他(データベース)
-
アクセスで『0の値以外』を表示する方法
Access(アクセス)
-
-
4
AccessでReplace関数を使うときに…
Excel(エクセル)
-
5
Accessで「式で型が一致しません」とエラーがでます
Access(アクセス)
-
6
access テーブル作成クエリでテーブル作成すると、データの数字が勝手に変わる こんにちは クエリ
Access(アクセス)
-
7
ACCESS 直線ツールの矢印
PowerPoint(パワーポイント)
-
8
「#エラー」の回避
Access(アクセス)
-
9
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
10
Accessの画面更新を一時的に停止する方法。
その他(データベース)
-
11
Accessで、1つの項目に複数の置換えを1度でするには?
Access(アクセス)
-
12
Access2003 クエリで、空の列は作れますか?
Access(アクセス)
-
13
「RunSQL」と「Execute」の違い
Access(アクセス)
-
14
2つのテーブルから条件に一致しないデータ抽出
SQL Server
-
15
アクセスで空白がグループ化されない
Access(アクセス)
-
16
ACCESS テーブルを見比べて、一致したレコードを抽出したいです
Access(アクセス)
-
17
OR関数
その他(Microsoft Office)
-
18
Accessのリンク先を相対パスにしたい
その他(データベース)
-
19
【ACCESS/必須条件とOR条件を組み合わせる】
その他(Microsoft Office)
-
20
既に使用されているので、使用できませんでした
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS クエリで重複データを最...
-
ACCESSでクエリを作成したら「...
-
ACCESSでデータ削除すると「読...
-
ACCESS クエリで、グループ化...
-
「データベースまたはオブジェ...
-
ACCESSにてフィールド間の最小...
-
ACCESS クエリー 抽出条件が...
-
アクセスのスナップショット
-
クエリで「データ型が一致しま...
-
長いSQL文を見やすくするツ...
-
アクセスでフォームが更新でき...
-
選択したチェックボックスのみ...
-
Accessのフォーム上にレコード...
-
アクセスのフォームのビューが...
-
アクセス:フォームを閉じずに...
-
Formからの複数選択抽出条件に...
-
Access 別フォームへの再クエ...
-
Access2002 フォームを閉じるた...
-
テーブルに主キーを作らないデ...
-
アクセスでテーブルの変更内容...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESS クエリで重複データを最...
-
ACCESSでクエリを作成したら「...
-
「データベースまたはオブジェ...
-
マイクロソフトAccessでsqlのas...
-
追加先の発見方法(SQL以外)
-
SQLについて質問です。 下記の...
-
access・カウント結果がゼロで...
-
ACCESSでデータ削除すると「読...
-
ACCESS のクエリー実行に異常に...
-
ACCESS クエリー 抽出条件が...
-
accessで選択クエリで得た全レ...
-
SQLです教えてくださいお願いし...
-
ACCESSにてフィールド間の最小...
-
ACCESS クエリで、グループ化...
-
アクセスでフォームが更新でき...
-
ユニオンクエリについて
-
SqlServer2012 ビューとクエリ
-
クエリで「データ型が一致しま...
-
SQLで優先順位が高いレコードを...
-
AccessでのDISTINCTROW 、DISTI...
おすすめ情報