• ベストアンサー

アクセスのマッチングで空白がある場合の処理方法

アクセスのクエリーで質問です。 例)1)顧客マスターテーブルA   2)顧客マスターテーブルB 二つのテーブルがあって、それぞれの電話番号でマッチングをかけようとした場合。 AとB両方に登録している顧客を抽出しようとしています。 ただ、どちらの、電話番号フィールドには空白があります。 その場合標準でマッチングをかけると、空白は空白と認識してしまい、すごい数の結果が現れてしまいます。 で、電話番号に空白があれば、マッチング処理を無視するといった処理をしたいのですが、 どのようにすればよいでしょうか。 すみません基本的な質問で。 アクセス苦手なので、一旦エクセルにエキスポートして、空白に99999とかを入れてインポートしたりしています。 もっとよい、アクセスでのやり方があれば、ご教示いただければ嬉しいです。 よろしくお願いいたします。   

質問者が選んだベストアンサー

  • ベストアンサー
  • miwaharu
  • ベストアンサー率25% (29/112)
回答No.1

力技ですが・・・ いったん、A・Bそれぞれ電話番号が空白のレコードを 表示しないクエリーを作成して、そのクエリーを基に マッチングしてはいかがでしょうか。 ちなみに抽出条件は is not null あるいは<>"" です

yukka05
質問者

お礼

ありがとうございます。 空白の問題ではありませんでした。 早々のご回答、ありがとうございました。今後ともよろしくお願いいたします。

その他の回答 (3)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.4

クエリでAとBの結合を両方のテーブルの結合フィールドが同じ行だけを含めるにすれば空白は無視するはずなのでが。 このリレーションをとっても空白のレコードを表示してしまう場合は両方の電話番号のフィールドの抽出条件にIs Not Nullを入れれば空白は除かれます。 Excelからのインポート時に空白のはずのフィールドになにかスペースでも入っているとそれと同じものを除く抽出が必要です。 テーブルの電話番号の空白のフィールドにスペースなどが入っているか確認してください。カーソルをそのフィールドに持っていくとスペースが入っているのかどうか図ります。

yukka05
質問者

お礼

ありがとうございます。 おっしゃるとおりで、空白の問題ではありませんでした。 早々のご回答、ありがとうございました。今後ともよろしくお願いいたします。

  • palmmy
  • ベストアンサー率38% (841/2170)
回答No.3

マッチングするクエリーで、 Is Not Null And >" " という条件を電話番号フィールドの片方に入れて みては?

yukka05
質問者

お礼

ありがとうございます。 空白の問題ではありませんでした。私の勘違いでした。 早々のご回答、ありがとうございました。今後ともよろしくお願いいたします。

回答No.2

リレーションショップのウインドウで両方のテーブルを表示させて、電話番号フィールドを結合させる(どちらかのテーブルの電話番号フィールド名をクリックしそのままもう一方の電話番号フィールド名に重ねれば出来る)。 そのときにの「結合プロパティー」は「1.両方のテーブルの結合フィールドが同じ行だけを含める」を選択して、あとはクエリーで両方のテーブルを利用して必要なフィールドを表示してはどうでしょうか。

yukka05
質問者

お礼

ありがとうございます。 空白の問題ではありませんでした。 早々のご回答、ありがとうございました。今後ともよろしくお願いいたします。

関連するQ&A

  • Access処理を自動化するには?

    以下の状況で困っています。お知恵を拝借できれば幸いです。 宜しくお願いいたします。 <状況の作業> 1)システム甲より、特定のフォルダにCSVデータA,Bがエクスポートされる。 2)データAをテーブルAにインポートする。 3)データBをテーブルBにインポートする。 4)テーブルAにある重複をクエリでなくす。(クエリA) 5)クエリAとテーブルBからクエリを使用して最終データを作る。(クエリ最終版) 6)クエリ最終版をエクスポートして、CSVで保存する。(最終版.csv) 7)システム乙に「最終版.csv」をインポートする。 ※メモ   元のCSVがエクスポートされる場所はサーバ上です。   元のCSV名は、「YYYYMMDD_固定部分.csv」で名称が変動します。 <やりたい事> 上記の作業のうち、2)~6)を自動化したい。

  • アクセス2010 N:Nのマッチングクエリ

    アクセス初心者です。 テーブルAとテーブルBのマッチングで両テーブルでマッチしないデータも 表示させたい場合、どのようなクエリにすればよろしいですか? テーブルA全件、テーブルB全件 → クエリ表示(マッチするデータは1件で表示) 例 ■テーブルA CD 数 010 1 020 5 030 3 ■テーブルB CD 数 020 7 030 6 040 2 □クエリ CD 数 010 1 020 12 030 9 040 2 よろしくお願いします。

  • Accessのクエリ実行について

    すみません。ご存知でしたら、教えてください。 まず一点、基本(?)を確認させてください。 下記のように数個のテーブルとそれらを使用した数個のクエリがあったとします。 下記の場合に、もしどれかのテーブルを更新したとします。 その場合、アクセスを立ち上げて、クエリ3を実行するだけで、結果には反映されているのでしょうか?それとも、アクセスを立ち上げて、 クエリ1を実行し閉じ、クエリ2を実行し閉じ、最後にクエリ3を実行しないと、反映されていないのでしょうか? --------------------------------------------------------- テーブルリンクA 、テーブルリンクB、テーブルリンクC、テーブルリンクD ↓↓ テーブルAとテーブルBでクエリ1(マッチング)を作成 テーブルCとテーブルDでクエリ2(マッチング)を作成 ↓↓ クエリ1とクエリ2でクエリ3(マッチング)を作成 ------------------------------------------------- 続いて、もし上記でいちいち途中のクエリを実行しないと、 最後のクエリに反映されない場合、すべてをACCESSを立ち上げたと同時に自動実行し、自動で最後のクエリ(この場合、クエリ3)をエクスポートしたいと考えています。可能でしょうか? 素人な質問ですみません。 何卒よろしくお願いいたします。

  • Accessで空白を作りたい【大至急でお願いします】

    テーブルよりクエリでデータの並び替えを行いたいと思っています 【例】 No. 名前 住所 電話番号  このデータの名前と住所の間に空白の行を作りたいのです               No. 名前 (空白) 住所 電話番号 クエリで順番を入れ替えて、空白にしたいところを 空けて、実行すると詰まってしまい、空白の行ができません 何かいい方法は無いのでしょうか?     

  • [Access]別テーブルの最大値以降の連番振り

    過去の質問を色々調べたのですが、結局以下の連番の振り方が分からず・・・困っています。 どなたか助けて下さい。お願いいたします。 テーブルA(蓄積されている過去テーブル) 伝票番号  顧客NO  注文日 001 111111 2012/11/10 001 111111 2012/11/10 002 222222 2012/11/25 002 222222 2012/11/25 002 222222 2012/11/25 003 333333 2012/12/31 テーブルB(新規にインポートするテーブル) 004 444444 2013/02/01 004 444444 2013/02/01 005 222222 2013/02/15 005 222222 2013/02/15 006 555555 2013/02/15 006 555555 2013/02/15 上記のように、テーブルBをインポートした時に、伝票番号を「004,004,005・・・」という風に 顧客NO毎に連番を振りたいです。 DmaxやDcount関数を使う事はなんとなく分かったのですが、うまくいきません。 出来れば、クエリで実現したいと思ってます。 テーブルAにある顧客がテーブルBに出てきたとしても、関係なく連番が振れれば問題無いので、 テーブルAからは最大値+1の値だけ取れればいいです。 宜しくお願いいたします!!

  • アクセスで空白がグループ化されない

    過去に質問があるか検索をしたのですが、 なかなか、合致したものが、見つからず、 すみません。 質問させていただきます。 20,000件ほどのデータで、Nullも含むデータを アクセスクエリのグループ化をしたのですが、 空白がどうしても、2つに分かれてしまいます。 見たところ、何も入力されていず、 エクセルにエクスポートして、if文で同じか確認しても 同じという結果がでます。 データ自体は、エクセルからインポートしました。 初心者の質問ですみません。 よろしくお願いします。 ちなみに、20,000件のうち、空白は2,777件で、 クエリでカウントすると、13件と2764件で分かれます。 また、エクセルのフィルターを使って、空白の件数を出すと 2,777件になります。 よろしくお願い致します。

  • Accessの結合に詳しい方

    依頼に対し、Accessを用いて対応したいと思いますが、まずは依頼内容を説明します。 顧客リストがエクセル形式で送られてきます。 このリストには「電話番号」と「メールアドレス」の列がある。 社内データベースの顧客テーブルにも「電話番号」と「メールアドレス」に相当するフィールドがある。 依頼は、顧客リストにある「電話番号」か「メールアドレス」のどちらかがDBに実在する各顧客をピックアップしたいというものです。 具体的には、どちらか片方だけ存在する場合は「1」、両方存在する場合は「2」、 どちらもない場合は空欄を、顧客リストのそれ用の記録列に記載するイメージです。 この依頼に対応するため、Accessを用いたいと思います。 思いついた手順は以下です。 ・Accessで新規テーブルを作成し、顧客リストを全て貼り付ける。 ・顧客DBの全データをインポートする。(もちろん、別のテーブル) ・「電話」クエリを作り、顧客リストの電話番号と顧客DBの電話番号を結合キーとして内部結合する。 ・「電話」クエリを実行し、出てきた電話番号を持つ顧客について、顧客リストの記録列に「1」と記入。 ・同様に「アドレス」クエリを作り、実行し、どちらか片方だけ存在する場合は「1」、両方存在する場合は「2」と記入。 以上ですが、要するに、クエリを分けるのではなく、一度にやりたいと思います。 顧客リストの電話番号とアドレスについて、DBに片方のみDBに存在するか、両方存在するか区別しつつ、抽出することはできますか? よろしくお願いします。

  • ACCESS2002、レコードのインポートができません!

    初心者です、よろしくお願いします。 ■ 仕様環境 WinXP Access2002 アクセス2002で顧客管理システムを作ってます。 アクセスAのテーブルにアクセスBのテーブルをインポートする時、 レコードだけインポートできないのでしょうか? どうしても違うテーブルが作られてしまいます。 例えば・・ アクセスAに「住所」という項目があり、そこには既にレコードが 何件か入っているのですが、そこにアクセスBの「住所」のレコードを追加したいのですが、 うまくいきません。そういう機能はついていないのでしょうか? また、アクセスBの情報をエクセルファイルに変えて「次のテーブルに保存する」で インポートしたのですが、最後の「完了」ボタンを押すと「エラーが発生し、 インポートできませんでした」という表示がでてインポートできません。 同じように電話番号や名前、メールアドレス等もアクセスAに追加したいのですが、 一つ解決しないと先に進まない気がするのでとりあえず住所だけにしぼってみました。 データを”追加”するような感じでしたいのです! 誰かお知恵を貸してください!

  • Access でこんなこと可能でしょうか?

    エクセルに10枚のシートが存在します。 顧客の名前、住所などの情報が入っているシートをシートAとします。 顧客の名前、口座番号などの情報が入っているシートをシートBとします。 また、口座を複数登録されている人がいらっしゃるのでシートBには名前が重複しています。 ここで問題なのはシートAは顧客全員の情報が入っていません。 ですからシートBに存在している顧客の名前がシートAに入っていない顧客も存在します。 そのようなシートがこの他にもいくつもあります。 このようなシートを整理したいと考えています。 つまり、エクセルファイルをアクセスにインポートしてから顧客全員の名前を記載したテーブルを作りたいと考えています。 クエリでやってみたのですが名前が重複していたりして条件も悪く、 テーブル間のフィールドの結合がうまくいきません。 私のやりたいことは実現できるはずなのでしょうか? また、難度が高いのでしょうか? よろしくお願いいたします。

  • access フォーム間で情報が引き継がれない

    初心者です、よろしくお願いします。 仕様環境 WinXP Access2002 請求管理のシステムを作っています。 テーブルには 顧客マスタ(主キーは顧客番号でテキスト型 例:0001等) 請求マスタ(主キーは請求番号でテキスト型 例:A0001等) 明細マスタ(主キーは明細番号でオートナンバー ダミーみたいな感じで使っています。) そしてリレーションシップで顧客マスタ(1)→(多)請求マスタ(1)→(多)明細マスタになっています。 顧客マスタを元にしたフォーム(顧客入力フォーム)に顧客情報を入れて、 「請求書作成ボタン」を作り、そのボタンを押すと別のフォーム(請求書作成フォーム)に 飛ぶようにしているのですが、その際に顧客入力フォームに入力した情報を 引っ張っていくようにしたいのですが、うまくいきません。 ちなみに顧客マスタと請求マスタのリレーションは”顧客番号”でつなげています。 請求書作成フォームは請求書作成クエリから成り、 その中で顧客番号(テーブル:顧客マスタ)の抽出条件に[Forms]![顧客入力フォーム]![顧客番号]と 入れて”顧客番号つながり”で飛ぶようにしているのですが、 請求書作成フォームは開くのですけど、項目はすべて空白です。 またいろいろレコードを追加している内に、請求番号が既にあるものに対しては顧客情報も引き継がれることが判明しました。 構文が間違っているのでしょうか? 混乱しています、お助けください。