• ベストアンサー

Accessで、レポートに連番を振る方法

こんなデータベースを作成しています。 データとしては、社員番号、氏名、端末番号の3種類で、1つ目の テーブルには社員番号(キー)と氏名、もうひとつのテーブルには 端末番号(キー)と社員番号があり、社員番号間でリレーション シップを作成しています。なぜひとつのテーブルにしないかと いいますと、以下の希望があるからです。  ・社員番号は重複不可  ・端末番号も重複不可  ・ただし、端末番号は、使用していない番号もある。   (つまり、最後に端末番号順のレポートとして出力する際に、使用    していない端末番号があっても、それは使用者「なし」として    出力したいということです。) ということで、2つ目のテーブルには、端末番号のみのレコードが 多数あります。この状態で、クエリにて社員番号、氏名、端末番号の ものをつくり、ある社員の端末番号を変更しようとすると、エラーが 出てしまうのです。おそらく、空きの番号は2つ目のテーブルにて 社員番号「なし」で登録されているので、それと重複という扱いに なっているのだと思います。私の考えだと、そこで自動的に端末番号の テーブルの方も書き換えが起こると考えていたのですが・・・ アドバイスをお願いします。 この文ではよくわからない点もあるとは思いますので、補足もしたいと 思っています。

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

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

表題と質問内容があっていませんね 表題を無視して回答します ご質問の内容から推理すると 社員の端末使用状況を管理したいとうことのようですね この場合社員と端末とは多対多の関係にあると思われますから テーブルが2つでは不足です テーブルは以下の3つになります [社員マスタ](社員番号、氏名、・・・) [端末マスタ](端末番号、端末名、・・・) [使用状況](社員番号、端末番号) 多対多についてはヘルプで研究してください

kinki-u
質問者

補足

ありがとうございます。 悪戦苦闘しております。 テストとして、教えていただいた通りにテーブルを作って、リレーション シップを設定してみました。で、クエリを作ってみたのですが、社員 コード順のもの(社員コード、氏名、端末名、・・・)はできたのですが、 全端末番号の一覧(端末番号、社員コード、氏名、・・・)を作ろうと すると、エラーが出てしまいます。(あいまいな外部結合が含まれて いるので・・・)というものです。 実は、表題の内容はここに絡んできていまして、空いている番号も 一覧として出したいのです。ただ、リレーションシップを設定する際に 「端末マスタ」の全レコードと「使用状況」の対応するレコードとの 結合にすると、上記のエラーが出てしまいます。お互いの一致する レコードのみ結合とするとエラーは出ませんが、使用していない端末は 表示されなくなってしまいます。 状況が伝わりましたでしょうか??

その他の回答 (4)

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

>クエリのデザイン画面で設定する関連付けと、リレーションシップの >画面で設定する関連付けは異なる種類のものということですか?? そうです Accessは初心者用のDB。SQLを覚えなくてもデータベースができる というあたりが売りで、本来ならSQLで記述しなければならない クエリがクエリデザインビューで(全てのクエリには対応していませんが) テーブルの定義がテーブルデザインビューで出来るようになっています テーブルの方はデザインビューだけでは定義できないテーブルの関係 をリレーションシップウィンドウでの定義で補っています ややこしいのはここからで 初心者に優しいDBの続きなんでしょうが クエリでのテーブル結合の際に(本来は関係ない) リレーションシップで定義した結合を結合候補として表示したりする サービスをしてくれるところです (このサービスのおかげで両者を同じと誤解する初心者が出てくるのでしょうね)

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

誤解があるようですよ リレーションシップはテーブル間の(参照)関係を設定するものです SQLで言えばCONSTRAIN句の設定です クエリの結合はどのフィールド同士をどのように結びつけるかを設定します SQLで言えば、JOIN句の設定です 2つにはよく似ていますが別の物です

kinki-u
質問者

補足

う~ん・・・ また混乱してきました。 クエリのデザイン画面で設定する関連付けと、リレーションシップの 画面で設定する関連付けは異なる種類のものということですか??

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

>全端末番号の一覧(端末番号、社員コード、氏名、・・・)を作ろう こうしたければ「端末マスタ」と「使用状況」を外部結合することになります 外部結合もヘルプで研究してください

kinki-u
質問者

補足

外部結合は、なんとなく理解していました。 おそらくこれがわかれば解決だと思いますので教えてください。 リレーションシップのプロパティ(内部結合とか外部結合とか)は、 クエリごとに変えることができるということでしょうか? (わたしはいつもメインメニューのリレーションシップから変更 していました。)

回答No.1

入力はどのようにするのでしょうか? もし、フォームとかから入力するのならば 重複不可のためにテーブルを分ける必要はないかと。 入力checkの時に重複もついでに調べれば良いので。

関連するQ&A

  • ACCESSのご質問(初歩的なことかもしれませんが)

    ACCESS初心者の質問にお付き合いいただければ幸いです。 テーブル定義情報を書類で残そうと思います。 テーブル名、項目名、データ型、コメント テーブルデザインで表示された情報をコピーしたいのですが 一個ずつしかできません。まとめてコピーする方法はありますか? 2.社員テーブルと担当者テーブルを作りました。  社員テーブル:社員番号、氏名  担当者テーブル:社員番号、担当業務  キー項目は両者とも「社員番号」で重複なしです。  「社員番号」同士で、1:1のリレーションをはりましたが   このやり方ではなく    社員テーブル に「担当業務項目」を設けるというやり方。   のどちらにするか迷っています。   まだ運用前なのでどちらにもできます。  フォームの作りこみが簡単なのは、「テーブルを分ける」やり方です。  また、一人が複数の担当を持つ場合も考えられます。  そのときのことを考えて、やっぱり、担当者テーブルを別にもうけ、  また、キー項目を「社員番号」ではなく「担当者コード」を別途設けるべきかな、、と思い始めています。   以上、とりとめがなく恐縮ですが、お付き合いいただければ幸いです。

  • Accessのレポート操作について

    住所録を作りたくて、氏名、フリガナ、住所等のテーブルを作成し、レポートも大凡作ったのですが、 氏名のフリガナが重複するときにレポートに「カナ重複あり」というテキストを非表示にしたいのですが、うまくいきません。 詳細部分のVBAに条件を充たしたら、テキストを非表示にするところまでできてるのですけど、 重複するデータを認識させるVBAが思いつきません。 どうしたらいいでしょうか?よろしくお願いします。

  • Access2000でのレポート作成。1

    Access2000でレポートを作成しています。 「一覧テーブル」というものがあります。 項目は ・支払先No ・支払先 ・入居者 ・支払月 ・家賃 ・駐車場 ・共益費 ・支払総額 ・礼金 ・敷金 ・仲介料 ・更新料 ・その他 です。 また「支払先住所一覧テーブル」というテーブルがあり ・支払先No ・郵便番号 ・住所 が入っています。 この2つのテーブルを「支払先No」でリレーションし ・支払先 ・郵便番号 ・住所 ・入居者 ・支払月 ・家賃 ・駐車場 ・共益費 ・支払総額 ・礼金 ・敷金 ・仲介料 ・更新料 ・その他 という内容の「レポート一覧用テーブル」を作成するためのテーブル作成クエリをつくりました。 このテーブルからレポートを作成しようとしたのですがいいアイディアが浮かばず困っています。 2へ続きます。

  • Access2010についてです。

    Accessリレーショナルシップ 参照性でエラーがでて しまい、 1対1になってしまいます(泣) テーブル (1)手当請求(社員番号、日付、日数) (2)社員データ(社員番号、名前、等級、職場) (3)等級別手当( 等級、金額) (4)等級別日額(社員番号、名前、職場、等級、金額) この3つをなんとか 関連付けをしたいのですが エラーがでてしまいます(泣) リレーショナルシップ テーブル作成クエリを利用して (4)に(3)の情報を組み込んで 表示させたいです。 社員番号を入力すると 名前や職場が飛ぶようにしたいです。 最終的には、 社員番号、名前、職場、等級、等級 と入力した日数 から割り出した金額を表示するレポート を作成したいです。 どなたか教えてくださいおねがいします!!

  • アクセス 参照更新について

    アクセスのデーターベースの参照更新で悩んでいます。 Aシートには番号(重複なし)、氏名、ふりがな、 Bシートには番号(重複あり)、仲良し番号(重複あり) 上記のAシートの番号、Bシートの番号同士をリレーションでAシートの番号を1、Bシートの番号を多で結び参照更新を設定しています。  新たに、Aシートの番号が変更されたときに、Bシートの仲良し番号が参照更新されるようにしたいのですが、うまくいきません。 どうすれば、うまくいくか教えていただければ有難いのですが・・・ 宜しくお願いします。

  • アクセスのレポートを学べるところ

    アクセス2000を使用しています。 いろいろURLをみていたのですが、フォームやクエリのことを 詳しく説明しているところはあるようですが、レポートのことを 詳しく解説してくれているURLをご存知ないでしょうか? やりたいことは、例えば社員テーブルより支店ごとの社員名簿を 出力したいのです。但し、明細行は一頁に20行枠付きで出力し フッターには支店の住所を出力します。当然、一頁20行に満た ない場合もありますが、その時は、できればVBAで「改行」を記述 したいと思います。 素人で欲張りすぎかもしれませんがよろしくお願いいたします。

  • ACCESSのレポート作成方法

    ACCESSでレポートを作成したいと考えています。 お客様から注文が入り次第、「氏名」と「商品名」をフォームに入力します。 商品は1個が500円で、2個目以降は400円となります。 例えば、山田太郎さんから「みかん」と「リンゴ」と「キウイ」の注文が入った場合、フォームにそれぞれ手打ちした後、下記のようなレポートで出力したいと考えています。 氏名 山田太郎 商品 みかん 500円    リンゴ 400円    キウイ 400円 合計     1300円 これらを実現するには、どのような方法でテーブル、フォーム、レポートを作成すればよいのでしょうか?ご教授のほどよろしくお願いいたします。

  • Accessのレポートで

    お世話になります。 Access2002を使用しています。 レポートで業者への発注履歴を出力するのに、一度出力したレコードを次のレポート時に出力しないようにするには どのようにしたらいいでしょう。 発注履歴テーブルに発行済フィールドを作成し、レポートを出力したらその数値が0から1に変わり、次の出力時のクエリで1をひらわないようようにすればいいと思うのですが、その手法がわかりません。 どなたかご教授ください。

  • Access 別テーブルの特定フィールドの数

    ■Window7 ■Access2013 いつも、お教えいただき、本当にありがとうございます。 お手数ですが、下記の件につきましてお教えいただきたいとおもいます。 【質問】 テーブルが3つあり、それぞれリレーションで結んでいます。 団体テーブル=団体ID 氏名テーブル=団体IDで団体テーブル fmテーブル=氏名IDで氏名テーブル とリレーションを作成しています。 作成しているフォームは 団体名簿=メインフォーム 氏名=サブフォーム fm=データシートビューで別に作成して氏名IDを手動入力して、氏名テーブルと関連付けが出来るようにしています。 fmテーブルには、[姓]、[名]、[年齢]、[性別]などがあり、この中の[性別]で"男性"の 数をメインフォームに表示させたいのですが、DCountを使って見よう見まねでやっているのですが、どうしても出来ません。どのように式を作ればよいか、お教えいただきたいと思います。 何卒、よろしくお願いいたします。

  • Access 重複する値を制限したい

    いつもお世話になっています。 [学年][クラス][出席番号]のフィールドを作成したテーブルがあります。 [学年][クラス]は大きな分類なのでまず間違えないのですが [出席番号]が重複して入っていることがしばしばあります。 テーブルのインデックスで「はい(重複なし)」にしてしまうと ひとつのクラスの出席番号しか入らなくなります。 簡単なようで煮詰まっています。 お力添えよろしくお願いいたします。

専門家に質問してみよう