• ベストアンサー

ACCESSで出欠リストを管理する

ACCESSでこんなことができないか調べています テーブルA・・・顧客ナンバー、顧客名、顧客情報、出欠欄 テーブルB・・・X日に会議に出席した人の顧客ナンバー、顧客名 テーブルAに1万件の全顧客データ、Bに500件のX日の出席者のみのデータがあったとして、テーブルAの出席欄にBの500件分について○をつけるということは可能でしょうか?そして、また次に会議があったら、XX日会議出席者に○をつけるというようにして、テーブルAに情報を追加して行く形で全部の情報をテーブルAのデータベースで管理したいのです。 私の技量ではテーブルAとBをクエリを使って出席した人の顧客情報をくっつけるぐらいが精一杯なのですが、テーブルAとBをクエリでくっつけて、それからAから重複を削除して、くっつけたデータを追加してうんぬん、とむにゃむにゃいじればなんかぐちゃぐちゃになりながらもできそうな気もするのですが、よく判りません。 スマートなやり方があればぜひ教えてください。

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

  • ベストアンサー
  • tag1701
  • ベストアンサー率54% (67/123)
回答No.3

こんばんは。 質問の内容拝見しました。 テーブルAが顧客情報とすると、これが極端な話100万件でも 問題ないのですが、これはエクセルのイメージで言うところの 行数にあたりますよね? で、出欠欄が会議毎増えていくとなると、列数が増えるということでしょうか? この行数、というかフィールド数は制限値がありますので この500フィールドという数は不可能と思うのですが。。 わかりやすいのは、回答1さんとにた形ですが テーブルAはあくまで顧客情報とする。 テーブルBは例えば会議情報テーブルとする。 会議番号・会議名・日付・内容 テーブルC 出欠者データテーブルとする。 会議番号・顧客番号 入力の部 テーブルA・・顧客が増えた時だけ追加入力作業 テーブルB・・会議内容発生時入力 テーブルC・・入力フォーム作成 会議番号エリア・顧客番号(コンボボックスにしとくと便利)        ボタン作成し、クリック時追加クエリ実行        ※追加クエリ事前作成しておく フォームの会議番号エリア、顧客番号エリアのデータをテーブルCに追加されるクエリ。 見るための部 テーブルBの会議番号とテーブルC の会議番号をリレーションで結ぶ(一対多) テーブルAの顧客番号とテーブルC の顧客番号をリレーションで結ぶ(多対多) クエリZZZ 作成 テーブルA.C使用。  テーブルCの会議番号・顧客番号とテーブルAの顧客名・顧客情報 テーブルBを基にフォームYYY作成。 このフォームにクエリZZZのサブフォームXXXを追加する。 フォームYYYの会議番号とサブフォームXXXの会議番号を親子関係にする。 これで会議毎にデータを選ぶとサブフォームに出席者一覧が表されます。 面倒そうですが、一度作ってしまえば入力は簡単と思いますが如何でしょうか?

yochan_m
質問者

お礼

詳しいご説明、ありがとうございました。 かなりスマートな感じで、使い勝手のいい感じになりそうですね。確かにこのほうが見栄えもいいし、あとあとの管理もしやすそうです。 とりあえず、求められている情報の精度としては、会議には各顧客は1回ずつしか出ない前提で、テーブルAの出欠の欄(列)に出たら丸をつけていき、次の会議があったらまた同じ列に丸を追加していくという、何日に出たかまではいれておかなくていいから、とりあえず手で一人ずつ入力するのは面倒なので一気に入れる方法はないかという感じなんですが。 そういうデータ管理を求められていること自体がなんとなくアナログちっくですか?

その他の回答 (2)

回答No.2

欲しいカラムがよく分かりませんが 出席者を抽出したいという事でしょうか ・重複排除(DISTINCT) SELECT DISTINCT ・リレーション設定(where句で) WHERE A.顧客ナンバー=B.顧客ナンバー ※ACCESSは使った事ありませんので的外れならごめんなさい

yochan_m
質問者

お礼

アドバイスをありがとうございます。 イメージ的には、出席者を抽出するのではなく、顧客リストに出席した人だけ○をつけたいんですが、1件ずつ検索して入力とかはしたくないので、出席者リストから入れる作業ができないかなぁと模索しております。 私も普段はACCESSなど使わないので、まったく判っておりませんが、なんか重複排除でできないかなぁとかは思いました。 ありがとうございました。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

テーブルAとテーブルB、分かれた今の状態の方が良いと思いますが。 「Y日の会議」が出てきたらテーブルCにするとか管理は楽だと思います。 1)「クエリ」の「新規作成」で、テーブルAとテーブルBを「テーブルの追加」して「OK」。列をすべて下のグリッドにドラッグ&ドロップ。 2)テーブルAの「顧客コード」をテーブルBの「顧客コード」のドラッグ。 3)結ばれた「線」をダブルクリック。 4)3つ項目があるうちの「テーブルAのすべて・・・」を選択してOK 5)名前を付けて保存。 これでテーブルA(全行)で出欠表ができます。 X日参加者だけ知りたいなら、5)で作成したクエリを呼び、ふたつある「顧客コード」のうち、元がテーブルBの「条件」を[is not null]にする。 X日欠席者だけ知りたいなら、5)で作成したクエリを呼び、ふたつある「顧客コード」のうち、元がテーブルBの「条件」を[is null]にする。 それぞれクエリとして保存して使用してください。

yochan_m
質問者

お礼

早速のご回答ありがとうございます。 おっしゃるとおり、私自身はテーブルを分けておいて、必要なときにクエリを作った方が管理しやすいような気がするのですが、ACCESS自体をあまり使わない職場なので、みんなが使うためにはなんとなくEXCELっぽいデータベース管理にしてほしいようで。でも、1件ずつ手で入れるのは面倒なので、ACCESSでなんとかできないかと言われているのです。 教えていただいた方法を試してみたいと思います。ありがとうございました。

関連するQ&A

  • access での値参照およびコピー

    はじめまして、 どなたかアクセス2007での処理方法を教えてください。 アクセス初心者です。よろしくお願いいたします。 以下のような3つのテーブルがあります。 salesテーブルはcsvファイルをインポートしたワークテーブルです。 テーブル名:sales(ワークテーブル) 受注番号 名前   住所 3   さぶろう 長野県 4   しろう  愛知県 ここから追加クエリで以下のテーブルにデータを追加しました。 (ID12と13、IDはオートナンバーです。) テーブル名:顧客マスター 顧客ID 名前 住所  10 たろう 東京都 11 じろう 神奈川県 12 さぶろう長野県 13 しろう 愛知県 そして以下のテーブルにも追加クエリでワークテーブルの情報を追加しました。 テーブル名:受注情報(受注番号3と4を追加) 受注番号 顧客ID  商品名 1    10   りんご(すでにあるデータ) 2    11   ばなな(すでにあるデータ) 3         りんご(今回ワークテーブルから追加したデータ) 4         みかん(今回ワークテーブルから追加したデータ) 上記の場合で、受注情報テーブルに顧客IDを挿入するには どのような方法で追加すればよいのでしょうか? ワークテーブルの中に顧客IDはないので単純な追加クエリでは できなのでどうやったらよいか分かりません。 (顧客テーブルと受注情報テーブルは結合されています。) 同姓同名を避けるためにsalesテーブルの名前&住所と顧客マスターテーブルの 名前&住所を比べて、同じものの顧客IDを受注情報テーブルの顧客ID欄に入れたいのです。 そうすると顧客テーブルと受注情報テーブルの顧客IDのリレーションシップに矛盾が 起きないのではないかと思っています。 よろしくお願いいたします。

  • Accessで連続データってできますか?

    Aテーブル(データベース)からBテーブルに必要なレコードを抽出して、Bテーブルで編集しています。 Bテーブルで編集したレコードをCテーブルに移動する際に、連続データのフィールドが必要になったので、テーブルのオートナンバー型フィールドを一つ追加しましたが、うまくいきません。 追加クエリでB→Cに移動させるんですが、キー違反がでてクエリが動きません。 できれば、クエリで連続データを作成して、Cテーブルに追加させたいんですが、クエリで連続データって作れるものなのでしょうか?

  • フォームの作り方 アクセス2000

    アクセス2000を使い始めた初心者です。 顧客群に関するテーブルAがすでにあります。 このテーブルは事情があって、フィールドを追加することはできません。 もうひとつのテーブルBを作って、こちらに情報を追加するためのフィールドをいくつか作ります。 やりたいことは、 入力用のフォームに、テーブルAの情報内容を表示させて、テーブルBの入力をしたいのです。 クエリを作ってリレーションを設定するのだろうと思うのですが、具体的に進め方がわかりません。 よろしくお願いします。

  • Microsoft Accessでどうしても上手くいきません。

    (1)テーブル作成クエリ クエリA で テーブルB を作ります。 (2)テーブルB にフィールドを一つ追加して、変更を保存 (3)テーブルB のレコードを削除 (4)クエリA を 追加クエリ に変更 で追加クエリAを実行すると、入力規則違反でレコードの追加ができません。 追加するフィールドは、オートナンバー型です。 以前は同様の作業で成功したんですけど・・・ すみません助けてください

  • Accessの追加クエリのエラーについて

    Accessについて教えてください。 データベースを作成しているのですが複数でデータを閲覧したり情報を入れようとするためA(データ保存ファイル)とB(メニューファイル)の2つを作成しました。Aはデータを保存するテーブルのみでBにはAのテーブルをリンクさせているものとデータを一時保存するテーブルがあります。 Bのデータ一時保存テーブルに一旦データを入れ、その後、追加クエリを実行しAのテーブルに反映させ、削除クエリで不要になったBのテーブルデータを削除していますが、追加クエリが上手く動いていないようです。 テキスト型、日付型等のフィールドは追加されるのですがメモ型フィールドに入れていたデータは削除されてAのテーブルに追加される時があります。(削除クエリはきちんと実行されています。) 私が行う限りは上記のような事象はありませんが、すでに何件か発生しているようです。 その時に表示されるメッセージは『???に失敗しました』と出ていたそうです。 何か思い当たる原因をご存知の方がいっらしゃいましたら教えてください。(上手く説明できてなくて申し訳ありません。) ちなみにAはNWサーバー、Bはローカルサーバーに保存しています。

  • アクセスの削除クエリーについて

    アクセス2000の削除クエリーを実行すると、「削除できません」の表示がでます。テーブルを2つ(AとB)追加して、顧客CDでリレーションを組みます。テーブルAからはアスタリスクマークをドラッグしてますので、FROMがでます。テーブルBの顧客CDをドラッグするとWHEREがでます。つまり、テーブルBにある顧客CDを全部テーブルAから削除したいのですが、データウィンドウは表示されますが、削除を実行すると、「削除できません」の表示がでます。アクセス2.0では可能だったのですが、アクセス2000ではなぜできないのでしょうか??

  • ACCESSでキーが変わった時の結合

    環境 Windows 10 Access 2013 2つのテーブルにある数値を比べて増減を算出するクエリを作成しています。共通であるNo.でA LEFT JOIN Bして「クエリ結果」を出すと当然ながらNo.4は結合されません。しかし調査すると、テーブルBにあるNo.0が過去にNo.4だったことがわかり、テーブルAのNo.4と比較する必要がでてきました。 テーブルAもそうですが、テーブルBのNo.を変更することなく(フィールド、テーブル追加は可)「出したいクエリ結果」を作成することは可能でしょうか。Excelを使用するのは不可とさせていただきます。 説明を簡略化するためにキーは一つ(No.)とさせていただきましたが、実際は4つになります。 SQL文を提示していただければと思います。 ご教授よろしくお願いいたします。 テーブルA No._数値 1_350 2_200 3_430 4_250 5_600 テーブルB No._数値 1_100 2_150 3_350 0_180 5_500 クエリ結果 A.No._A.数値_B.数値_AーB 1_350_100_250 2_200_150_50 3_430_350_80 4_250__ 5_600_500_100 出したいクエリ結果 A.No_A.数値_B.数値_AーB 1_350_100_250 2_200_150_50 3_430_350_80 4_250_180_70 5_600_500_100

  • ACCESSで複数のテーブルで同じ内容の行を抽出

    いつもお世話になっておりあます。 ACCESSのクエリ作成でお聞きしたき件ありまして、 投稿させていただきました。 下記の様な商品購入テーブルA・Bで ・・・テーブル定義・・・ テーブルA 顧客ID 商品名 テーブルB 顧客ID 商品名 ・・・入力データ・・・ テーブルA 顧客ID 商品ID 0001  あめ 0002 コーラ 0003  せんべい テーブルB 顧客ID 商品ID 0001  おかし 0002 コーラ 0003  わたあめ ・・・・・・・・・・・ とのテーブルにて テーブルAとテーブルBの同じ状態の行 0002 コーラ を抽出するには、どのようなクエリを作成すればよろしいのでしょうか? 見当がつかず、こまっております。 どなたか、御対応いただけますと、ありがたいです。

  • アクセスの追加クエリで教えてください。

    非連結のフォームから、追加クエリを使ってテーブルにデータを追加したいのですが、 どうもうまくいきません。 具体的には、 履歴フォーム、というフォームで、 日付 施設名 内容 という項目があります。 追加クエリで、 [Forms]![履歴フォーム]![日付] のようにほかの項目も入力し、 その保存先は、 履歴テーブル、で、 項目は、履歴フォームと同じです。 履歴フォームにデータがまったく入っていない状態ですと、 追加クエリを実行した際、 0件のデータを追加します。となります。 自分でテーブルに直接データを何か入力すると、 次に追加クエリを実行した際、 1件のデータを追加します。となります。 続いて追加クエリ実行の際には2件、 その次は4件追加と、 テーブルに入っているデータの件数だけ、 そのときにフォームに入力されている情報が、追加されてしまいます。 どのような原因が考えられますでしょうか? お知恵を貸していただけたらと思います。 情報が不十分でしたらご指摘願います。 補足いたしますので。 それでは、よろしくお願いいたします。

  • Access、選択して印刷したい場合

     こんにちは、長い質問ですみません。どなたかご教授お願いします。  今、作成したいのはテーブルAに1000件以上の顧客データ(重複ないです)があり、その中から1件だけ選択し、フォームB上に作成したコマンドボタンのクリックで、その顧客データの情報だけをA4サイズ全てを使用して印刷出力したいのです。  レポートの詳細にテーブルAのフィールド項目を反映させると、1件だけではなく、A4サイズに許す限り次のデータが反映されてしまいます。  作業の順番を下記のように私なりに考えて進めていますが、どこがおかしいでしょうか? (1)テーブルAと連結する検索クエリCを作成し、抽出条件にLike[顧客コード]&"*" (2)フォームBのコントロールソースをクエリCに設定 →初期画面をフォームBにし、フォームBを立ち上げると同時にパラメータの入力画面が出て、そこに顧客コードを入力すると顧客情報がフォームB上に表示されます。 (3)テーブルAをコントロールソースにしたレポートを作成する。詳細にテーブルAのフィールド項目を入力。 (4)印刷マクロを作成し、マクロのアクションを「レポートを開く」にし、ビューを印刷にする。 (5)フォームBに印刷コマンドを作成し、イベントを印刷マクロにする。 (6)フォームBより印刷コマンドをクリックして、印刷開始する。

専門家に質問してみよう