クエリ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をひらくと
「データ型が一致しません」
と表示されます。

どなたかアドバイスお願いします

このQ&Aに関連する最新のQ&A

A 回答 (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」は、それぞれ開始位置と置換する文字数の指定です。この辺りは、詳しくは
 ヘルプを確認して下さい)
    • good
    • 3
この回答へのお礼

丁寧な説明ありがとうございました。
よろしければ下記の質問もお願いします。

http://oshiete1.goo.ne.jp/qa3987087.html?ans_cou …

お礼日時:2008/04/30 13:26

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

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QAccessの抽出条件

お世話になります。
選択クエリの抽出条件の書き方がわかりません、どなかたお教えください。
質問:基本データ、の数値定義の、登録番号の、4225403~4246003の間の抽出条件で選択クエリの抽出条件セル内にどのように書けばよいでしょうか?

ちなみに私は、&[Forms]![F_抽出条件]![抽出条件]のForms、F_抽出条件、抽出条件、!、[] 等の意味がまったくわからないレベルです。
そのままセルにコピペでOKの形で教えてください。

Aベストアンサー

こんばんは。

>そのままセルにコピペでOKの形で教えてください。
あなたのデータベースのフォーム名とかテキストボックス名が
不明なのでコピペ形式の回答は無理です。

>、&[Forms]![F_抽出条件]![抽出条件]
  「F_抽出条件」というフォームの「抽出条件」というテキストボックスという意味です。
  F_抽出条件」フォームを開いておいて、クエリのデザイン画面から
  抽出条件を右クリックしてビルドでフォーム-読込まれたフォーム
  抽出条件テキストボックスとクリックしていくと簡単に抽出条件が
  入力できますよ。

 ご参考まで。

Qフォームでクエリの一致したデータを一括表示したい

こんばんは、初めまして。3z56uと申します。
標記の件で質問がありますので、どなたかご教授願います。

検索クエリで一致したデータをフォームで一度に表示したいのですが、
うまく行かず大変困っています。
イメージとしてはサブフォームのデータ表示なのですが、
これではない方法を教えてほしいのです。
今の状況はクエリにて抽出条件にスタッフコードを入力すると
そのコードが対象になるデータが出てくるという状況です。
このデータをそのままフォームで表示されるようにしたいのですが…。

ちなみにバージョンはアクセス2000です。
そしてアクセスに関しては基礎ぐらいしか理解しておりませんので、
出来ればわかりやすい方法で教えて頂きたいです。
大変困っていますので、よろしくお願いします。

Aベストアンサー

>検索クエリ
というものはありません
クエリで行うのは抽出です

検索というのは見つかったレコードまでジャンプするとか
見つかったものを選択するとかというときに使う言葉で
クエリの機能にはありません

どうやら抽出クエリは出来ているようですから
後はそのクエリをフォームのソースにするだけです

フォームで抽出条件を入力するようにしたければ
クエリから作ったフォームのヘッダーに非連結のテキストボックスを置き
今のクエリの抽出条件を
Forms!フォーム名!抽出条件テキストボックス
のように書き直し

テキストボックスの更新後かボタンでフォームを再クエリしてやります

>基礎ぐらいしか理解しておりませんので、
>出来ればわかりやすい方法で教えて頂きたいです
上記回答はヘルプに出てくる正しい用語で書いてありますから
分からないところはヘルプで調べてください

QRT-PCRをするためにRNA抽出をしています。フェノールの後のクロロ

RT-PCRをするためにRNA抽出をしています。フェノールの後のクロロホルムは極性の差を大きくして、水層と油層に分けやすくするためと書いてあったのを見たんですが、この場合のクロロホルムと、本によく載っているフェノール抽出の後のクロロホルム抽出とはまた違う意味なのでしょうか?よろしくお願いします。

Aベストアンサー

ご存知かもしれませんが、フェノールはタンパク質を変性させる疎水性物質で、
細胞膜も破壊します。
私はTRIzolを使っていましたが、柔らかい組織ならvortexでかなり懸濁できます。

フェノールは疎水性とはいえ、OH基があるため若干の水溶性があります。
なので、フェノールと水を混ぜて遠心すると二層に分かれますが、水層にも多少溶けています。フェノールは変性作用があるため、後々のPCR等の酵素反応を阻害してしまいます。
フェノールを使ってタンパク質を変性させ、タンパク質の疎水基を露出させることによって中間層に集めるわけですが、後のことを考えてできるだけフェノールは水層から取り除きたいわけです。

クロロホルムにはフェノールのような変性作用はありませんが強力な疎水性物質なので、フェノール+水の溶液に加えるとフェノールを疎水層にほぼ完璧に溶解させることができます。

なのでRNA抽出でもDNA抽出でもクロロホルムの作用はその強力な疎水性でタンパク質を
中間層に集める作用(これはフェノールでも可)とフェノール自体を水層からできるだけ
除去するという作用があるのだと思います。

ご存知かもしれませんが、フェノールはタンパク質を変性させる疎水性物質で、
細胞膜も破壊します。
私はTRIzolを使っていましたが、柔らかい組織ならvortexでかなり懸濁できます。

フェノールは疎水性とはいえ、OH基があるため若干の水溶性があります。
なので、フェノールと水を混ぜて遠心すると二層に分かれますが、水層にも多少溶けています。フェノールは変性作用があるため、後々のPCR等の酵素反応を阻害してしまいます。
フェノールを使ってタンパク質を変性させ、タンパク質の疎水基を露出させること...続きを読む

Q2つのテーブルを比較して一致した行を除外して表示するクエリ

レイアウトが全く同じテーブル(選択クエリ)が2つあります

Aテーブルには全行データ
Bテーブルには除外する分の行データが入っています

2つの行を比較し、Bテーブルに一致した1行を除き、表示するクエリを教えて下さい。
よろしくお願いします。

Aベストアンサー

一般的にはleft joinしてnullをチェック

select A.* from A
left join B on A.A1=B.A1 and A.A2=B.A2 and A.A3=B.A3
where B.A1 is null

Qエクセル2000フィルター抽出条件式について

フィルター抽出条件がうまく抽出出来ません教えてください。
抽出条件式 別シートで作っている。(Bシート) 
巡視日     巡視日
>=2002/05<=2002/07
条件式の意味
2002年5月以上で2002年7月以下のデータを抽出する。
2002年5月以上のデータは抽出できるが、2002年7月が抽出されない
2002年5月と2002年6月しか出てこない。

データベース(Aシート)
C列
巡視日
4月8日
5月11日
5月11日
6月5日
7月4日
7月4日

エクセル操作(データ→フィルター→フィルターオプション設定)で
検索条件範囲を
巡視日     巡視日
>=2002/05<=2002/07
指定してやるとデータベース(Aシート)のC列の抽出が
2002年5月以上のデータは抽出できるが、2002年7月が抽出されない
2002年5月と2002年6月しか出てこない。
何故でしょうかよろしくお願いします。

Aベストアンサー

こんにちは

>2002年5月と2002年6月しか出てこない。
手入力で 2002/5 とか 2002/7 とすると
EXCELが 2002/5/1 や 2002/7/1 と勝手に
判断して変換されている筈です。

2002/7/1以下と指定したのと同様です

月間を抽出するのにそれぞれ違う月末を考えながら
入力するのも面倒な場合は

巡視日    巡視日
>=2002/5/1  <2002/8/1

の方が楽ですね(^^;

QAccess クエリのデータ型について

AccessでPablic変数を日付範囲指定、クエリの抽出条件に指定したのですが、「抽出条件でデータ型が一致しません。」とのエラーメッセージで抽出出来ません。

【処理フロー】
1.フォームで、開始日と終了日をPublic変数へ格納
2.データ抽出クエリの日付条件に"GetData()"Public Functin VBAで変数を格納した値をクエリの抽出条件に返す。

《変数》
'開始日の宣言
Public sDate As Date
'終了日の宣言
Public eDate As Date

《GetData()》
Public Function GetDate()
MsgBox "開始日は、" & sDate & vbCrLf & "終了日は、" & eDate
GetDate = ">=#" & sDate & "# And <=#" & eDate & "#"
MsgBox ("Where文は、" & GetDate)
End Function

デバッグの為、"GetDate()"の戻り値を、メッセージボックスで表示してますが、戻り値は正常とおもわれますが、「抽出条件でデータ型が一致しません。」でクエリが実行できません。

ここを参考に、上記仕様にしました。
http://www.tsware.jp/tips/tips_369.htm

どうすれば、日付範囲をPablic変数から指定出来るか、お教え頂けましたら幸いです。
ちなみに、Pablic変数にしているのは、他のクエリでもこの日付範囲を使いたい為です。
もし、ほかに良い処理方法が有れば、ご教授ください。

AccessでPablic変数を日付範囲指定、クエリの抽出条件に指定したのですが、「抽出条件でデータ型が一致しません。」とのエラーメッセージで抽出出来ません。

【処理フロー】
1.フォームで、開始日と終了日をPublic変数へ格納
2.データ抽出クエリの日付条件に"GetData()"Public Functin VBAで変数を格納した値をクエリの抽出条件に返す。

《変数》
'開始日の宣言
Public sDate As Date
'終了日の宣言
Public eDate As Date

《GetData()》
Public Function GetDate()
MsgBox "開始日は、" & sDate & vbCr...続きを読む

Aベストアンサー

GetDate = ">=#" & sDate & "# And <=#" & eDate & "#"

と文字列を & で結合してますので、GetDate の返り値は文字列になります。

おそらく日付型のフィールドの抽出条件にこの関数を設定していると思われますので、当然「抽出条件でデータ型が一致しません。」とのエラーになります。


>=#2013/1/1# And <=#2014/1/1#

というような式を返したいと期待しているのだと思いますが、
そもそも関数は値しか返すことはできません。

Public変数を使いたいのなら、

Public sDate As Date
Public eDate As Date

Public Function GetSDate() As Date
GetSDate = sDate
End Function

Public Function GetEDate() As Date
GetEDate = eDate
End Function

として、クエリの日付型フィールドの抽出条件の式を下記のようにします。


>= GetSDate And <= GetEDate

GetDate = ">=#" & sDate & "# And <=#" & eDate & "#"

と文字列を & で結合してますので、GetDate の返り値は文字列になります。

おそらく日付型のフィールドの抽出条件にこの関数を設定していると思われますので、当然「抽出条件でデータ型が一致しません。」とのエラーになります。


>=#2013/1/1# And <=#2014/1/1#

というような式を返したいと期待しているのだと思いますが、
そもそも関数は値しか返すことはできません。

Public変数を使いたいのなら、

Public sDate As Date
Public eDate As Date

Pub...続きを読む

QExcelのワイルドカードでの抽出で・・・

ワイルドカードの「?」は任意の1文字という意味ですよね?

住所リストからデータの抽出をおこなうのに、渡辺??」という抽出をおこなったところ、「渡辺○○子」「渡辺○○美」などという結果が出てしまいました。

これってどんな原因が考えられますか?

ワイルドカードはきちんと半角で入力してあります。

Aベストアンサー

#1,2のmshr1962です。
すみません。"が1個余計でした。
="=渡辺??"
で抽出できます。

QAccess あるクエリを利用しているクエリの一覧表示

Accessについて質問させてください。

初心者的質問で申し訳ありませんが、
おわかりになる方がおられましたら教えていただけると助かります。

・質問内容:
あるクエリを利用しているクエリの一覧をみる機能はあるでしょうか?

たとえば、クエリAを利用しているクエリBとクエリC・・・があったとします。
クエリAに変更を加えた場合に、他のクエリに影響がないかチェックしたいと考えた場合に
どのクエリがクエリAを利用しているかを知りたいというのが理由です。

お手数ですが、以上よろしくお願いいたします。

Aベストアンサー

横レス失礼致します。

> 入力テーブルまたはクエリ'MSysObject'が見つかりませんでした。

nda23さんの原文に「s」の脱字があります。
下記のものに修正すれば、エラーにならなくなるはずです。


修正版:
SELECT A.Name AS クエリ名,B.Name1 AS 参照名
FROM (MSysObjects As A LEFT JOIN MSysQueries AS B ON A.Id=B.ObjectId)
LEFT JOIN MSysObjects AS C ON B.Name1=C.Name
WHERE A.Type=5 AND B.Attribute=5 AND C.Type=5;

※上記SQL内の「MSysObjects」や「MSysQueries」は、テーブル名です。
 これらのテーブルは初期設定では見られませんが、以下の手順を踏むと表示させる
 ことができるようになります:
   1)メニューで「ツール(T)→オプション(O)」を選択
   2)『オプション』ダイアログが開いたら、『表示』タブを選択
   3)右側の上から2番目にある『システム オブジェクト(Y)』のチェックをオンにした後、
    『OK』ボタンをクリック
 これで、データベースウィンドウでテーブルの一覧を表示させると、「MSys」で始まる
 テーブル群が表示されます。


・・・なのですが、Access2003なのでしたら、標準機能の『オブジェクトの依存関係』を
使用してしまった方が楽なように思います。
(「調べるクエリが変わる毎に、わざわざSQL文を編集」といった手間が不要なので)

なお、内部的には、結局上記SQLと同様の処理(上記テーブル群の参照)をしているので、
サブクエリやユニオンクエリなどは、やはり対象外です。
(ただ、対象外になるクエリも別に一覧化されるので、個別確認は比較的容易)

以下、その使用方法を説明します:
1)データベースウィンドウでクエリの一覧を表示
2)調べたいクエリを右クリックし、一番下の選択肢「オブジェクトの依存関係」をクリック
3)「オブジェクトの依存関係情報を生成するには、[名前の自動修正情報をトラックする]~」
  のメッセージが表示された場合は、『OK』をクリック
  (上記SQLが正常に動くようなら、多分表示されません)
4)「オブジェクトの依存関係を表示するには、先に依存関係情報を更新する必要が~」の
  メッセージが表示された場合も、『OK』をクリック
  ※上記メッセージも含め、『ヘルプ』は確認しておくことをお勧めします。
   (同じファイルでは、2回目以降は(多分)表示されません)
5)画面右側に『オブジェクトの依存関係』ウィンドウが表示されるので、「このオブジェクトに
 依存するオブジェクト」を選択すると、その下に、右クリックしたクエリを使用している
 テーブルやクエリ、フォームの一覧が表示されます。
 (一番下には、この機能で確認できないサブクエリやユニオンクエリなどが表示されるので、
  こちらは個別に確認します)
 ※表示されたクエリ名などはハイパーリンクになっており、クリックするとそれぞれがデザイン
   ビューで展開されます。


・・・以上です。

横レス失礼致します。

> 入力テーブルまたはクエリ'MSysObject'が見つかりませんでした。

nda23さんの原文に「s」の脱字があります。
下記のものに修正すれば、エラーにならなくなるはずです。


修正版:
SELECT A.Name AS クエリ名,B.Name1 AS 参照名
FROM (MSysObjects As A LEFT JOIN MSysQueries AS B ON A.Id=B.ObjectId)
LEFT JOIN MSysObjects AS C ON B.Name1=C.Name
WHERE A.Type=5 AND B.Attribute=5 AND C.Type=5;

※上記SQL内の「MSysObjects」や「MSysQueries」は、テーブル名です...続きを読む

Qニコサウンドで 音声抽出の為の遵守報告

ニコサウンドで、音楽ダウンロードしようとしたら、抽出ボタンがなく

>音声抽出には、音声に著作権上の問題が無い旨の具体的な遵

守報告が必要です<

とありました。これは どういう意味なのでしょうか?

また具体的に報告してください……と 何行か書く欄があったんで

すが、何をどう書けば良いのか迷っています。音声抽出できるよう

にする為には 何をどう書けば良いのか教えて頂けないでしょうか?

音楽配信の知識があまりないので、基本的な質問かもしれませんが

今 困っています

音声抽出できるようになる 方法を 詳しく教えて頂けると

ありがたいです……

Aベストアンサー

二通り考えられます。

1、投稿者によって、抽出出来ないようにロックされている

2、元動画が著作権法、或いはその他法律違反を犯しているため、動画自体が削除されている

原因がわかったところで対処のしようがないのですが…
1の場合なら、「DL-video」(ググってみてください)
というサイトにてニコ動のURLをコピペして一旦PCに動画ごと保存
その後mp3tubeにて変換という方法があります。
(今でも通用するかどうかは不明ですが…)

2の場合ならお手上げです。どうしようもありません

QAccessで一致したデータを表示させたい

Accessについて教えてください。

Accessで以下のようなテーブルを作っております。

(T1)テーブル1(社員データ)
社員NO オートナンバー
所属 テキスト型
氏名 テキスト型

(T2)テーブル2(面談データ)
NO オートナンバー
日付 日付/時刻型
面談者氏名 テキスト型
面談者企業名 テキスト型
社員NO1 数値型
社員NO2 数値型
社員NO3 数値型
社員NO4 数値型

社員NO1,2,3,4はテーブル1の社員NOとリレーションでつながっています。

(T1)社員NO、(T2)NO以外のデータを最終的にレポートで表示します。

ここで、クエリ、フォーム、レポートをいづれでも作成するときですが、

日付(T2) 面談者氏名(T2) 面談者企業名(T2) 社員NO(T1)(非表示) 社員NO1の所属(T1) 社員NO1の氏名(T1) 社員NO(T1)(非表示) 社員NO2の所属(T1) 社員NO2の氏名(T1)・・・(社員NO3、4と続けて)
という風に作りたいです。

クエリ、フォーム、レポートで作成すると、社員NO1(T2)の所属(T1)氏名(T1)、しか表示されません。(これでは当たり前かもしれませんが・・・)
社員NO2、3、4の所属、氏名も表示させたいです。
フォームやクエリ、レポートで社員NO2、3、4(T2)のデータと一致する社員NO(T1)の所属、氏名を表示させる方法はどのようにしたらよろしいでしょうか。

どうかよろしくお願い致します。

Accessについて教えてください。

Accessで以下のようなテーブルを作っております。

(T1)テーブル1(社員データ)
社員NO オートナンバー
所属 テキスト型
氏名 テキスト型

(T2)テーブル2(面談データ)
NO オートナンバー
日付 日付/時刻型
面談者氏名 テキスト型
面談者企業名 テキスト型
社員NO1 数値型
社員NO2 数値型
社員NO3 数値型
社員NO4 数値型

社員NO1,2,3,4はテーブル1の社員NOとリレーションでつながっています。

(T1)社員NO、(T2)NO以外のデータを最終的にレポ...続きを読む

Aベストアンサー

#2 再回答です。

要点だけで、サンプルを作りました。
サンプルでは、内容確認のために「社員NO」自体も入っていますが、
非表示でも項目無しでも同じ動作が可能です。(=所属&氏名のみ表示)

また、面談者の氏名&企業名は、T2_面接 テーブルに項目追加すればよいです。

作成手順は・・・
クエリの画面で、面接用のテーブルにある各社員NOに対して、それぞれ社員テーブルをリンクさせます。

次に、「社員1」とつながった社員テーブル内の、所属&氏名をダブルクリック。
次に、「社員2」とつながった社員テーブル内の、所属&氏名をDクリック。
次に、(サンプルには社員NOもあるため)、それぞれの社員NOもDクリックです。

このクエリを、「SQLビュー」で表示させると、以下の内容になります。

SELECT T1_社員.所属, T1_社員.氏名, T1_社員_1.所属, T1_社員_1.氏名

FROM (T2_面接 INNER JOIN T1_社員 ON T2_面接.社員NO1 = T1_社員.ID)

INNER JOIN T1_社員 AS T1_社員_1 ON T2_面接.社員NO2 = T1_社員_1.ID;


当然ながら、二つのテーブルを作成し、「ツール」⇒「リレーションシップ」内であえて設定をせずに、サンプルのクエリ内での設定を行うだけで、実現可能です。

#2 再回答です。

要点だけで、サンプルを作りました。
サンプルでは、内容確認のために「社員NO」自体も入っていますが、
非表示でも項目無しでも同じ動作が可能です。(=所属&氏名のみ表示)

また、面談者の氏名&企業名は、T2_面接 テーブルに項目追加すればよいです。

作成手順は・・・
クエリの画面で、面接用のテーブルにある各社員NOに対して、それぞれ社員テーブルをリンクさせます。

次に、「社員1」とつながった社員テーブル内の、所属&氏名をダブルクリック。
次に、「社員2」とつ...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報