- 締切済み
ACCESSで質問です。
ACCESSで質問です。 ACCESSで添付のようなクエリを、別のクエリを作成して一つのフィールドにしたいのですが 受付番号がキーとなり、デスクトップ(1)、A4ノート(1)、モバイル(1)、プリンタ(1)、暗号化(1)の情報を参照して、 デスクトップ(1)、A4ノート(1)、モバイル(1)、プリンタ(1)はキ―番号に対して一つしか入らないので問題ないのですが暗号化はクライアントPCであり暗号化となる為、抽出しようとするとダブってしまいます。 その為、クライアントPCと暗号化導入PCの両方が入る場合は、暗号化導入PCを優先するようにしたいのですが条件をどのように入れたらよいか? 解りません。 解る方がいましたら、助言よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- piroin654
- ベストアンサー率75% (692/917)
ついでながら、 利用区分: IIf(Not IsNull([暗号化]),[暗号化],[デスクトップ] & [A4ノート] & [モバイル] & [プリンタ]) のように、「暗号化」のフィールドに記載してある データを取得する、ということでもいいです。 この場合は、「暗号化」に記載してあるデータ なので、「暗号化PC」とあれば「暗号化PC」が 利用区分に表示されます。 一応、この質問の場合に準じています。まだ 書き方はいろいろですが、肝は [デスクトップ] & [A4ノート] & [モバイル] & [プリンタ] のように、フィールドをつなげるところですかね。これならば、 キーにたいして一つのフィールドにしかデータが入らない ということなので、このような方法が使えます。 文字列の結合ですから、簡単に言えば、 [空フィールド] & ["aaaa"] & [空フィールド] & [空フィールド] = aaaa ということです。 複数の中からということになれば、ちょいと関数を作成する必要がでてきます。
- piroin654
- ベストアンサー率75% (692/917)
No3の暗号化PCは暗号化導入PCなので、 利用区分: IIf(Not IsNull([暗号化]),"暗号化導入PC",[デスクトップ] & [A4ノート] & [モバイル] & [プリンタ]) としてください。
- piroin654
- ベストアンサー率75% (692/917)
一応、 >デスクトップ(1)、A4ノート(1)、モバイル(1)、プリンタ(1)はキ―番号に対して一つしか入らない ということなので、クエリの新しいフィールドに以下を設定してください。 利用区分: IIf(Not IsNull([暗号化]),"暗号化PC",[デスクトップ] & [A4ノート] & [モバイル] & [プリンタ]) これで、要件は満たす、と思うのですが、どうでしょう。
- piroin654
- ベストアンサー率75% (692/917)
抽出の結果を具体的に示してもらえればわかりやすいのですが。 このようになればいいのですか、 付番号 デスクトップ A4ノート モバイル プリンタ 暗号化 利用区分 A1 クライアントPC A2 クライアントPC 暗号化導入PC 暗号化導入PC A3 クライアントPC 暗号化導入PC 暗号化導入PC A4 クライアントPC A5 クライアントPC A6 クライアントPC A7 クライアントPC 暗号化導入PC 暗号化導入PC A8 クライアントPC 暗号化導入PC 暗号化導入PC A9 クライアントPC あるいは、 受付番号 デスクトップ A4ノート モバイル プリンタ 暗号化 利用区分 A1 クライアントPC クライアントPC A2 クライアントPC 暗号化導入PC 暗号化導入PC A3 クライアントPC 暗号化導入PC 暗号化導入PC A4 クライアントPC クライアントPC A5 クライアントPC クライアントPC A6 クライアントPC クライアントPC A7 クライアントPC 暗号化導入PC 暗号化導入PC A8 クライアントPC 暗号化導入PC 暗号化導入PC A9 クライアントPC クライアントPC のようになればいいのですか。 あるいは、もっと違った抽出結果ですか。
補足
すみません。結果としては下記のようにしたいです。 受付番号 利用区分 11111 クライアントPC 22222 クライアントPC 33333 LAN接続プリンタ 44444 暗号化PC 55555 暗号化PC 上記のように利用区分のフィールドにクライアントPCかLAN接続プリンタか暗号化PCかの種別を記載したいです。 問題なのは、クライアントPCと暗号化PCの両方が入っている場合あ、暗号化PCを抽出するようにしたいです。
- piroin654
- ベストアンサー率75% (692/917)
最初から基になるクエリを作成するときに制御すれば 面倒なことをしなくてすむと思うのですが。 たとえば、以下のように。 同じフィールド名を使うと循環参照になるので、各フィールド名の 先頭に「F_」としています。 「受付番号」と「暗号化」以外のフィールドについて表示を 変更したいということで解釈しています。 クエリの名前は「クエリ名」としています。実際に合わせて変更 してください。 SELECT クエリ名.受付番号, IIf(IsNull([暗号化]),[デスクトップ],"") AS F_デスクトップ, IIf(IsNull([暗号化]),[A4ノート],"") AS F_A4ノート, IIf(IsNull([暗号化]),[モバイル],"") AS F_モバイル, IIf(IsNull([暗号化]),[プリンタ],"") AS F_プリンタ, クエリ名.暗号化 FROM クエリ名; 解釈がちがっていたらごめんなさい、です。
補足
解りにくい記載ですみません。 元々のテーブルに受付番号、デスクトップ(1)、A4ノート(1)、モバイル(1)、プリンタ(1)、暗号化(1)と他にもフィールドがあるのですが種別を判断する為に、利用区分として上記の5種類に受付番号毎に分けて、クエリを使って新しい利用区分というフィールドを作成したい思っています。 利用区分の種類は、クライアントPCとLAN接続プリンタと暗号化PCの3種類に分かれます。プリンタは一つしかありませんので問題ないのですが、デスクトップとモバイルはクライアントPCが一番多いのですが、クライアントPCで暗号化対応というものも数点あり、その場合クエリで抽出する場合にクライアントPCと入っていても暗号化となっていれば暗号化を優先したいのです。 最終的には、利用区分を選定する為に作りたいクエリです。
お礼
本当にありがとうございました。助かりました。