• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ACCESSに取り込み比較する方法について)

ACCEESSに取り込み比較する方法

このQ&Aのポイント
  • ACCEESSに2つのファイルを取り込んで、設置場所ID・ネットワークID・スロット番号・ポート番号ごとに比較できるようなものを作成したいと思いますが、その方法を教えて頂きたく、よろしくお願い致します。
  • 末尾に添付した内容の2つのテキストファイルを読み込み、両者を比較したいと思います。比較したいのは、各ポートにおける端末番号です。
  • ちょっと厄介なのが、a.txtとb.txtのデータ形式が異なる点です。・a.txtでは、設置場所名漢字が末尾に、b.txtでは設置場所名ひらがなが先頭にきている。・スロット番号について、ハブ(ネットワークIDの末尾がHxx)の時、a.txtは01であり、b.txtは-となっている。また、ルータ(ネットワークIDの末尾が000)の時、a.txtは01であり、b.txtは1となっている。・ポート番号について、a.txtは001であり、b.txtは1となっている。・設置場所IDについて、a.txtは末尾に00が付かないが、b.txtは末尾に00が付いている。

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

  • ベストアンサー
noname#192382
noname#192382
回答No.6

お答えします。 1.エクセルの段階でテーブル a,b ごとに      =ネットワークID×100+スロット番号×10+ポート番号 を計算して、識別のフィールド名をつけます。 2.エクセルの表をアクセスにインポートします。 3.アクセスの世界でa,bの識別をユニオンでまとめます。そのため 3-1 クエリー新規のところでaテーブルを読み込み端末番号だけを抜いたものをaqクエリーとして保存します。b テーブルについてもbqクエリーをつくります。 3-2 クエリー新規作成のところで 新規作成の窓でOKを、次のテーブルを選ぶ窓で「閉じる」を選ぶ。 3-3 ツールバーのクエリーをクリックし、そこで現われるすだれの中のSQLを選択し、ユニオンを選びます。    そこに     table aq union table bq と書き込んで、ツールバーの中のびっくりマークを押して実行させます。 その結果をabqという名称でクエリーに保存します。 4.リレーションを新たに作成します。クエリーabqと,テーブルa,テーブルbの間に識別をもとにつくります。結合の種類は 編集して、クエリーabqの全部とテーブルa, テーブルbの同じ識別を結合させます。リレーションを保存します。 5.クエリーを新規作成にします。このクエリーに取り込むのはクエリーabqの全部と,テーブルaの端末番号、識別,テーブ ルbの端末番号、識別です。実行させると希望のものの一つ前のものが現われます。後の判定はパソコンでも出来ます がとりあえず人間がやることにしますか。

okayama394
質問者

お礼

良くわかりました。 既に、比較結果をまとめ分析作業に入るところです。 長い間、ありがとうございました。

その他の回答 (5)

noname#192382
noname#192382
回答No.5

optisoupです。また少しいじりました。bのスロット番号はすべて1に変えました。それから識別aはRC[-2]*100+RC[-5]+RC[-4]に識別bはRC[-1]+RC[-4]*10+RC[-3]に替えました。 最終結果は以下のものでよろしいでしょうか。 設置場所名 goo83a.ネットワークID goo83a.スロット番号 goo83a.ポート番号 goo83a.端末番号 goo83b.ネットワークID goo83b.スロット番号 goo83b.ポート番号 goo83b.端末番号 識別a 識別b 江戸川 12345H01 1 1 340101 12345H01 1 1 340101 1234511 1234511 江戸川 12345H01 1 2 340102 12345H01 1 2 340102 1234512 1234512 江戸川 12345H01 1 3 340103 12345H01 1 3 340103 1234513 1234513 江戸川 12345H01 1 4 12345H01 1 4 1234514 1234514 江戸川 12345H01 1 5 12345H01 1 5 1234515 1234515 江戸川 12345H01 1 6 12345H01 1 6 1234516 1234516 江戸川 12345H01 1 7 340104 12345H01 1 7 340105 1234517 1234517 江戸川 12345H01 1 8 340105 12345H01 1 8 340104 1234518 1234518 葛飾 12346000 1 1 350101 12346000 1 1 350102 1234611 1234611 葛飾 12346000 1 2 350102 12346000 1 2 350101 1234612 1234612 葛飾 12346000 1 3 12346000 1 3 1234613 1234613 葛飾 12346000 1 4 12346000 1 4 1234614 1234614 葛飾 12346000 1 5 12346000 1 5 1234615 1234615 葛飾 12346000 1 6 12346000 1 6 1234616 1234616 葛飾 12346000 1 7 350103 12346000 1 7 350104 1234617 1234617 葛飾 12346000 1 8 350104 12346000 1 8 350103 1234618 1234618 葛飾 12346000 2 1 350105 12346000 2 1 350105 1234621 1234621 葛飾 12346000 2 2 350106 12346000 2 2 350106 1234622 1234622 葛飾 12346000 2 3 12346000 2 3 1234623 1234623 葛飾 12346000 2 4 12346000 2 4 1234624 1234624 葛飾 12346000 2 5 12346000 2 5 1234625 1234625 葛飾 12346000 2 6 12346000 2 6 1234626 1234626 葛飾 12346000 2 7 350107 12346000 2 7 350107 1234627 1234627 葛飾 12346000 2 8 350108 12346000 2 8 350108 1234628 1234628 足立 12347H01 1 1 440101 12347H01 1 1 440103 1234711 1234711 足立 12347H01 1 2 440102 12347H01 1 2 440101 1234712 1234712 足立 12347H01 1 3 440103 12347H01 1 3 440102 1234713 1234713 足立 12347H01 1 4 12347H01 1 4 1234714 1234714 足立 12347H01 1 5 12347H01 1 5 1234715 1234715 足立 12347H01 1 6 12347H01 1 6 1234716 1234716 足立 12347H01 1 7 440104 12347H01 1 7 440104 1234717 1234717 足立 12347H01 1 8 440105 12347H01 1 8 440105 1234718 1234718

noname#192382
noname#192382
回答No.4

optisoupです。あなたのやりたいことが判りましたので、少し手直しが必要になります。 エクセルの段階で手直しをやります。一番ラクに出来ますので。 3-1エクセルを起動してa関係のファイルを開きます。仮にa.xlsという名前て呼ぶことにします。 3-2 7列目に"設置場所ID"t×10+"ポート番号"の数値を入れます。それにはこの列の第2行に    =RC[-2]*10+RC[-4] という式をいれてエンターキーを押します。123451となるはずです。 3-3 第7列第2行をコピーしてそのすぐ下のセルから一番下まで貼り付けします。123452,123453という数値が見られるはずです。フィールド名を仮に識別aとします。 3-4 このファイルをa.xlsという名前で保存します。 3-5 次にb関係のエクセルファイルを開きます。仮にb.xlsという名前て呼ぶことにします。 3-6 7列目に"設置場所ID"t/10+"ポート番号"の数値を入れます。それにはこの列の第2行に    =RC[-1]/10+RC[-3] という式をいれてエンターキーを押します。123471となるはずです。 3-7 第7列第2行をコピーしてそのすぐ下のセルから一番下まで貼り付けします。123472,123473という数値が見られるはずです。フィールド名を仮に識別bとします。 3-8 このファイルをb.xlsという名前で保存します。 3-9 アクセスを起動してa.xlsとb.xlsを読み込みaテーブルとbテーブルをつくります。 3-10 保存します。 4-1 別のリレーションをつくります。 4-2 リレーションのウインドーの中にaとbのテーブルのリストをおいて、 4-3 識別aと識別bの間をリレーションをつくり線でつなぎます。 ここまで出来たら教えてください。

noname#192382
noname#192382
回答No.3

No2です。よろしく。 2-1 アクセスを起動してつくったmdbを読み込みます。 2-2 ツールバーのリレーションシップをクリックします。 2-3 リレーションのウインドーの中に、aテーブル、bテーブルをドラッグアンドドロップで取り込みます。 2-4 aテーブルの端末番号、bテーブルの端末番号が見えていますよね。次にリレーションシップの中のaテーブルの端末番号をクリックして、ドラッグしてbテーブルの端末番号の上にドロップします。これで二つの間が線で結ばれているはずです。 あとはクエリーになります。ちょうど出かける時間になりましたので続きは帰ってから昼過ぎにさせてください。

okayama394
質問者

補足

お忙しい中、丁寧にご回答頂きありがとうございます。 色々、教えて頂いてすみませんが、 実は、aテーブルとbテーブルの内容が一部変更になりました。 内容は、以下の通りです。 比較結果のような表を出したいのですが、クエリは、どうのように すればよろしいのでしょうか。なお、リレーションは作成しました。 a.txtの内容(設置場所ID,ネットワークID,スロット番号,ポート番号,端末番号) 12345,12345H01,1,1,340101 12345,12345H01,1,2,340102 12345,12345H01,1,3,340103 12345,12345H01,1,4, 12345,12345H01,1,5, 12345,12345H01,1,6, 12345,12345H01,1,7,340104 12345,12345H01,1,8,340105 12346,12346000,1,1,350101 12346,12346000,1,2,350102 12346,12346000,1,3,, 12346,12346000,1,4,, 12346,12346000,1,5,, 12346,12346000,1,6,, 12346,12346000,1,7,350103 12346,12346000,1,8,350104 12346,12346000,2,1,350105 12346,12346000,2,2,350106 12346,12346000,2,3,, 12346,12346000,2,4,, 12346,12346000,2,5,, 12346,12346000,2,6,, 12346,12346000,2,7,350107 12346,12346000,2,8,350108 12347,12347H01,1,1,440101 12347,12347H01,1,2,440102 12347,12347H01,1,3,440103 12347,12347H01,1,4,, 12347,12347H01,1,5,, 12347,12347H01,1,6,, 12347,12347H01,1,7,440104 12347,12347H01,1,8,440105 12348,12348H01,1,1,450101 12348,12348H01,1,2,450102 12348,12348H01,1,3,450103 12348,12348H01,1,4,, 12348,12348H01,1,5,, 12348,12348H01,1,6,, 12348,12348H01,1,7,450104 12348,12348H01,1,8,450105 b.txt(設置場所ID,ネットワークID,スロット番号,ポート番号,端末番号) 12344,12344H01,1,1,330101 12344,12344H01,1,2,330102 12344,12344H01,1,3,330103 12344,12344H01,1,4,, 12344,12344H01,1,5,, 12344,12344H01,1,6,, 12344,12344H01,1,7,330104 12344,12344H01,1,8,330105 12345,12345H01,1,1,340101 12345,12345H01,1,2,340102 12345,12345H01,1,3,340103 12345,12345H01,1,4, 12345,12345H01,1,5, 12345,12345H01,1,6, 12345,12345H01,1,7,340105 12345,12345H01,1,8,340104 12346,12346000,1,1,350101 12346,12346000,1,2,350102 12346,12346000,1,3,, 12346,12346000,1,4,, 12346,12346000,1,5,, 12346,12346000,1,6,, 12346,12346000,1,7,350104 12346,12346000,1,8,350103 12346,12346000,2,1,350106 12346,12346000,2,2,350105 12346,12346000,2,3,, 12346,12346000,2,4,, 12346,12346000,2,5,, 12346,12346000,2,6,, 12346,12346000,2,7,350108 12346,12346000,2,8,350107 12347,12347H01,1,1,440103 12347,12347H01,1,2,440101 12347,12347H01,1,3,440102 12347,12347H01,1,4,, 12347,12347H01,1,5,, 12347,12347H01,1,6,, 12347,12347H01,1,7,440104 12347,12347H01,1,8,440105 比較結果(設置場所ID,ネットワークID,スロット番号,ポート番号,端末番号A,端末番号B,比較結果) 12344,12344H01,1,1,,330101,× 12344,12344H01,1,2,,330102,× 12344,12344H01,1,3,,330103,× 12344,12344H01,1,4,,,○ 12344,12344H01,1,5,,,○ 12344,12344H01,1,6,,,○ 12344,12344H01,1,7,,330104,× 12344,12344H01,1,8,,330105,× 12345,12345H01,1,1,340101,340101,○ 12345,12345H01,1,2,340102,340102,○ 12345,12345H01,1,3,340103,340103,○ 12345,12345H01,1,4,,,○ 12345,12345H01,1,5,,,○ 12345,12345H01,1,6,,,○ 12345,12345H01,1,7,340104,340105,× 12345,12345H01,1,8,340105,340104,× 12346,12346000,1,1,350101,350101,○ 12346,12346000,1,2,350102,350102,○ 12346,12346000,1,3,,,○ 12346,12346000,1,4,,,○ 12346,12346000,1,5,,,○ 12346,12346000,1,6,,,○ 12346,12346000,1,7,350103,350104,× 12346,12346000,1,8,350104,350103,× 12346,12346000,2,1,350105,350106,× 12346,12346000,2,2,350106,350105,× 12346,12346000,2,3,,,○ 12346,12346000,2,4,,,○ 12346,12346000,2,5,,,○ 12346,12346000,2,6,,,○ 12346,12346000,2,7,350107,350108,× 12346,12346000,2,8,350108,350107,× 12347,12347H01,1,1,440101,440103,× 12347,12347H01,1,2,440102,440101,× 12347,12347H01,1,3,440103,440102,× 12347,12347H01,1,4,,,○ 12347,12347H01,1,5,,,○ 12347,12347H01,1,6,,,○ 12347,12347H01,1,7,440104,440104,○ 12347,12347H01,1,8,440105,440105,○ 12348,12348H01,1,1,450101,,× 12348,12348H01,1,2,450102,,× 12348,12348H01,1,3,450103,,× 12348,12348H01,1,4,,,○ 12348,12348H01,1,5,,,○ 12348,12348H01,1,6,,,○ 12348,12348H01,1,7,450104,,× 12348,12348H01,1,8,450105,,× 以上です。よろしくお願いします。

noname#192382
noname#192382
回答No.2

1-1 カンマ区切りのファイルデータは、ワードに取り込んで、 .txt 形式ファイルとして保存します。 1-2 そのデータをエクセルに読み込んで、 .xls 形式のデータとして保存。 1-3 このデータをアクセスに読み込みます。aテーブルとして保存します。 1-4 もう一つのファイルデータを同じようにして、同じアクセスのデータベースのbテーブルとして保存します。 ここまで出来るでしょうか。この後は次の機会に。 下に示したのは最後の出来上がりの表です。足立区をさんぷるとして使いました。 aテーブル.ネットワークID aテーブル.スロット番号 aテーブル.ポート番号 aテーブル.端末番号 aテーブル.設置場所ID aテーブル.設置場所名 bテーブル.設置場所名 bテーブル.ネットワークID bテーブル.スロット番号 bテーブル.ポート番号 bテーブル.端末番号 bテーブル.設置場所ID 12347H01 01 001 440101 12347 足立 あだち 12347H01 - 2 440101 1234700 12347H01 01 002 440102 12347 足立 あだち 12347H01 - 3 440102 1234700 12347H01 01 003 440103 12347 足立 あだち 12347H01 - 1 440103 1234700 12347H01 01 007 440104 12347 足立 あだち 12347H01 - 7 440104 1234700 12347H01 01 008 440105 12347 足立 あだち 12347H01 - 8 440105 1234700

okayama394
質問者

補足

ありがとうございます。 MDBファイル内に2つのテーブル(aテーブルとbテーブル)を作成しました。 続きを教えてください。 最終的な形として、 設置場所ID,ネットワークID,スロット番号,ポート番号,端末番号(A),端末番号(B) という形の表を得たいと思います。 端末番号(A)と端末番号(B)で比較できるので。 なお、(A),(B)は各々、aテーブル,bテーブルの値を示します。 よろしくお願いします。

noname#192382
noname#192382
回答No.1

1.二つのファイルを二つのテーブルA,Bとして読み込みます。フィールドはもとのまま。 2.二つのテーブルの間に端末番号を仲立ちとしてリレーションを組みます。 3.クエリーを新規作成して、そこで二つのテーブルの全フィールドを入れます。 そして実行すると二つのテーブルが端末番号が同じものが1行のなかに左と右に並んで表示されます。ここで問題なのは端末番号がないものの扱いですが、多くはないので別途検討することが出来ます。

okayama394
質問者

補足

ご回答いただきありがとうございます。 すみませんが、1~3について、具体的な操作方法を教えてください。 よろしくお願いします。

関連するQ&A