• ベストアンサー

MS ACCESS について教えてください。

よろしくお願いします。 今度、業務でACCESSを使って住所録を作製することになりました。 現在、得意先一覧と仕入先一覧にテーブルが別れていますが、仕入先・得意先と切り替える手間を省きたいので、2つのテーブルを1つのフォームで表示できないか考えています。 クエリでつなぐと住所のフィールドが得意先・仕入先と分かれてしまうし、得意先一覧にあって仕入先一覧にないところも沢山あるため、関連付けができません。 DBを開くたびに追加クエリ得意先用・仕入先用を実行するのもDBのサイズが大きくなるので使いたくありません。 2つのテーブルを縦に連結させる方法があれば教えてください。

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

  • ベストアンサー
  • NORI-KEN
  • ベストアンサー率43% (18/41)
回答No.2

No1で回答したものです。 補足です。 >得意先一覧にあって仕入先一覧にないところも沢山ある これは 得意先 であり 仕入先である会社があり コード 又は結合条件となるものが同じという事ですよね。 その場合単純にユニオンクエリを使うと 得意先 かつ 仕入先 ですと 二重に表示されます(それでよいのでしたら 単純な ユニオンクエリで構いません) 回避したい場合は 得意先 = 仕入先のクエリ Union all 得意先と仕入先の差分クエリ Union all 仕入先と得意先の差分クエリ のような形にします。 それぞれのクエリ内に会社区分のようなものを付加し 得意先 = 仕入先のクエリ では "両方" 得意先と仕入先の差分クエリ "得意先" 仕入先と得意先の差分クエリ "仕入先"の ように定数を設定しておけば 見やすくなると思います。 (Select "両方" as 会社区分, ・・・・のような感じです)

saku123
質問者

お礼

ありがとうございました。 おかげさまでうまくいきました。 かなり満足いくDBができ、とても感謝しています。

その他の回答 (2)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.3

>2つのテーブルを縦に連結させる方法があれば教えてください。 ユニオンクエリを使います 連結できるのはフィールド数とデータ型が同じテーブルまたはクエリです all述語を使わなければ重複は排除されます 質問者の場合 テーブルそのものを取引先テーブルとして一つにまとめてしまう方が便利そうですね そのテーブルに取引種別フィールドを設けておけば 仕入先、販売先などだけを取り出すこともできるようになりますね

  • NORI-KEN
  • ベストアンサー率43% (18/41)
回答No.1

こんにちは。 縦に連結するとは 得意先一覧と仕入先一覧 の両方のデータを 出すという意味でよろしいでしょうか? そのような場合ですとユニオンクエリを用います。

関連するQ&A

  • Access 検索フォーム

    いつもお世話になってます。 Accessの検索フォームについて教えて下さい。 業務マスターと仕事DBという2つのデーターベースがあります。 業務マスターは共有のサーバーの中にあり、得意先テーブルをリンクして、それをもとに得意先フォームを作りました。 非連結のテキストボックス(txt検索)と非連結のリストボックス(一覧)がり、リストボックス(一覧)のクエリ得意先の抽出に使うフィールドの条件に、Like"*"&[Forms]![得意先フォーム]![txt検索]&"*" を入れました。 txt検索に文字を入れ、一覧リストボックスで絞込をし、選ぶとフォームに表示されるという流れにしたのですが・・・。 Private Sub txt検索_AfterUpdate() Me![一覧].Requery End Sub Private Sub 一覧_AfterUpdate() Dim rs As Object Set rs = Me.Recordset.Clone rs.FindFirst "[得意先ID] = " & Str(Nz(Me![一覧], 0)) If Not rs.EOF Then Me.Bookmark = rs.Bookmark End Sub [Forms]![得意先フォーム]![txt検索]というパラメータがでて(今まで出たことがない) 文字を入力しても実行できませんでした。参照元が分からないのかなと思いますが、どうしたらうまくいくのか分かりません。どなたかお知恵をかしていただけないでしょうか。Accessは2003を使っています。よろしくお願いします。

  • Access2003 異なるテーブルを1つのテーブルにくっつける

    こんにちは。 Access2003で、以下の2つのテーブルがあります。 テーブルA  得意先 売上高  あああ 100  いいい 200 テーブルB  得意先 仕入高  ううう 300  えええ 400  おおお 500 上記のようにフィールドが異なり、関連するID等のキーも持っていない別々のテーブルを、クエリなどで  得意先  売上高  得意先  仕入高  あああ  100    ううう  300  いいい  200    えええ  400            おおお  500 のようにテーブルAとテーブルBを横並び(?)にくっつける事は出来るのでしょうか? 得意先も別々なので、連結とかする事ができません。。 いろいろインターネットで調べたのですが、どうしても解らないので質問させて頂きました。 宜しくお願いしますm(__)m

  • ACCESSのフィールドの更新

    マイクロソフトACCESSフォームAでテーブルBのCフィールドの更新は出来るのですが、フォームDから連結でテーブルBのCフィールドの更新が出来ません。(同じようにして2個作成したシステムのうち1個は出来たのですが、もう1個がどうしても出来ません:テーブル,クエリ,フサブフォーム,フォームの違いを捜しているのですが見当たりません。)

  • Accessデータ並べ替えをハイブリッドにしたい

    [使用しているツール] Access 2007 PROFFESSONAL [やっていること(現状)] 1つのテーブルで複数のクエリ(複数のフィールドの並べ替えが必要な為)と複数(クエリと同数)のフォームを作成して、フォームの数だけコマンドボタンを作成してフォームを一覧表示で開いています。 [やりたいこと] 1つのテーブルで「1つのクエリ」による複数のフィールド(名)を切替えて、「1つのフォーム」で表示(一覧)させたいと思っています。 例えば、テーブル名:顧客名簿(取引先、県名、商品名、入庫日)、クエリ名:顧客名簿クエリ、フォーム名:顧客名簿一覧としたとき、(取引先、県名、商品名、入庫日)をコンボボックス等で切り替えることで、指定したフィールド(名)で並び替えられたデータを「フォーム名:顧客名簿一覧」に表示させられないでしょう。 [考えたこと] コンボボックス(名前:コンボ1)を作成し値集合ソースに「”取引先”;”県名”・・・・。」と入力、クエリ「顧客名簿クエリ」の抽出条件欄にビルダを起動させて「・・・コンボ1」を指定、フォーム「顧客名簿一覧」のレコードソースにクエリ「顧客名簿クエリ」を選択しました。しかし、フォーム「顧客名簿一覧」を開いても、データは抽出できずデータなしの表示で先へ進めていません。 以上ですが、宜しくお願いします。

  • Accessでオートナンバーを別テーブルで取得

    Accessで得意先一覧と商品一覧のテーブル・フォームを作成しており、それぞれのフォームに選択ボックスを設け、チェックを入れたものだけを抽出し、1つの得意先に対し、複数の商品の一覧を作成したい と思っております。 現在あるテーブル・フォーム ■ 得意先コード 得意先名 担当者名 ■ 商品コード 商品名 価格 依頼書(Excelにエクスポートし一覧化)となる為、得意先に対する商品は都度変わっていきます。 現在は、得意先をメインフォーム、商品をサブフォームとし、全てコンボボックスで得意先1つを選択後、複数の商品を選択することで、同じオートナンバーIDを取得、依頼用空テーブルをコントロールソースとし、得意先テーブル、商品テーブルを作成後、IDでクエリを作成し、一覧としています。 しかし、得意先は約1万件、商品も300商品ぐらいある為、コンボボックスで選択に時間がかかっております。 それを、元々ある各一覧フォームから、チェックで選択し、それを依頼用の一覧としたいのですがどのようにしたら良いでしょうか? 単票形式フォーム同士で、メイン・サブフォームとすることもできず、困っております。 フィールド 得意先  商品コード  商品名  価格        得意先1  商品1     ・・・    ・・・        得意先1  商品2     ・・・    ・・・        得意先1  商品3     ・・・    ・・・ 別システムに取り込む為、依頼用の形式は上記のように決まっております 各一覧から、チェックで選択後、チェック分のみを抽出し、同じIDを取得後、一覧化することは可能なのでしょうか? お手数ですが、どなたかご教授願えませんでしょうか?

  • Accessの更新クエリについて質問です。

    よろしくお願いします。 集計したクエリを元に更新クエリを実行すると、更新できません。 やりたい作業としては、売上データテーブルのレコード数を得意先ごとにカウントして、得意先マスタテーブルのレコード件数フィールドを更新する作業です。 追加クエリで一度テーブルに追加してから、テーブル同士で更新も考えたんですが、レコード数が多いためにDBのサイズが爆発的に増えて廃案になりました。 何か良い方法があれば教えてください。

  • MS accessで2つのテーブルを比較したい

    数々この質問は出ているのですが、『不一致クエリウィザード』でやっても上手くいかないので、こちらで質問させていただくことにしました。 比較したいデータは、フィールドの名前が異なる2つのテーブルがあって、その比較したいフィールド数は120になります。 同一フィールドは「FID」「laa」というフィールドです。 一応自分で『不一致クエリウィザード』でやってみた手順としては以下の通りになります。 1.『不一致クエリウィザード』をクリック 2.どちらかのテーブルを選択(レコード抽出テーブルや比較するテーブルなど) 3.関連付けフィールドは、2つのテーブルで同じものを選択  (「FID」「laa」を選択) 4.結果を表示するフィールドを選択(120個全部) 5.「クエリのデザインを編集する」の方にチェックを入れて「完了」 6.クエリのデザインになったら、それぞれの名前は違うけど対応するフィールド同士をつなぐ 7.結合プロパティで2番ないし3番を選択 8.それを全部のフィールドにした   ↓ すると「クエリが複雑すぎます」とエラーメッセージが出てしまった。 一体どうすればよいのでしょうか? なにぶん初心者ですので、よろしくお願いします。 ※もしかして、フィールド名が異なっているのはダメなのでしょうか?

  • ACCESSでテーブルでの自動入力

    ACCESS 2007を使っています。 SQLとかは分かりません。(貼り付けとかも、そもそもどこに貼り付けるのかもよく分かりません) 得意先(100件)を、営業担当者(5人)にそれぞれに割り振ります。 得意先テーブル(得意先ID、名前、住所、担当者ID、営業担当者名)(とりあえずは、営業担当者名だけは空白) 営業担当者テーブル(担当者ID、営業担当者名)を 作成します。 クエリのほうで、以下の二つのテーブルの以下の要素を合体させたものを作ります。 得意先テーブルの(得意先ID、名前、住所、担当者ID) 営業担当者テーブルから(営業担当者名) すると、 得意先クエリ(得意先ID、名前、住所、担当者ID、営業担当者名)まで入ったもの、がつくれます。このクエリは、得意先ID、担当者ID両方がきちんと入力された項目のみがリストアップされます。 それで、以下疑問点なのですが、 ・基本的に、得意先の情報を新規で入力していく際は、この得意先クエリをベースに作成された、得意先フォームから入力していくというのが一般的なのでしょうか。 (テーブル自体に、上記の得意先テーブルに、得意先名まで入ったものを作成することは普通は、しないのでしょうか。入っていた方が何かと便利かと思うのですが、そういった用途には、クエリを基にしたフォームを使うものなのか。あくまでテーブルはデータの保管場所と考え、クエリを使用上の入出力の基本窓口にすべきなのでしょうか) ・現段階で、上記の得意先テーブルで、担当者IDが入力されていないものが多数あるのですが、(エクセルで取り込んだデータ)、この得意先クエリでは、それらは表示されません。そうすると、得意先テーブルから入力していく必要があります。その場合は、得意先テーブル自体か、そこから作られたフォームに、担当者ID(実際にはこれが、代理店IDで、結構多数あるのですが)、を入力していく形になるかと思います。この場合、得意先テーブルだけをベースとしたクエリやフォームをつくり、担当者IDの入力を(入力しやすい形、自動的に選択できるなど)にして、入力をとりあえず終えきるというのは基本でしょうか。 とりとめもない質問になってしまいましたが、よろしくおねがいします。 基本的な考え方など分かればと思います。

  • MS Access で、2つのテーブルを1度に表示できますか?

    うまく伝わるか自信ないんですが・・・ AテーブルとBテーブルがあります。 Aテーブルは、得意先へ請求済み売上データ Bテーブルは、得意先へ未請求の売上データ のレコードが入っています。 データを検索する際に、ABのテーブルを一度に検索して、1つのフォームに表示したいと思っています。 ファイル大きくなると困るので、追加クエリは使いたくありません。 何か良い方法はないでしょうか?

  • access コンボボックスの次

    顧客管理・商品管理の簡略化を目指している初心者です。商品マスター・仕入先・販売先というテーブルを作成、商品情報の入力・閲覧のためのフォームを作ろうと思っています。 1)商品マスターテーブルには、仕入先コードと販売先コードが入っています。フォーム上では仕入先名・販売先名も確認したいのですが、 「商品マスターテーブルにそれらを追加したクエリを作成 → クエリからフォームを作成」 という方法でよいでしょうか。 2)フォーム上で仕入先コードと仕入先名のコンボボックスを設置します。コードを選択すると自動的に次の欄に仕入先名が反映されるようにする方法を教えてください。 おそらく非常に初歩的な質問かと思いますが、マニュアルを見たり検索をかけたりしても要領を得ません。アドバイスをどうぞよろしくお願いいたします。

専門家に質問してみよう