• 締切済み

Accessで…

アクセス初心者です。 今、データベースを作っているのですが、テーブルに以下のようなデータがあります。 日付 社員コード1 氏名1 社員コード2 氏名2 12/1  1234      A    2345      B 12/3  2345      B のようにデータが入っているのですが、このデータを、 「社員コード」別に何回入っているかをカウントしたいのです。 どのようにするのがいいでしょうか? よろしくお願いします。

みんなの回答

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

テーブルの作り方が良くないような。 社員テーブル 社員コード 主キー 氏名 所属 ・・ 記録テーブル 日付 社員コード 分類 ・・ のようにして 記録クエリは、記録テーブル・社員テーブルを社員コードで関連付けて 記録テーブル.社員コード --→ 社員テーブル.社員コードと結合プロパティを設定します。 でこのクエリを集計クエリに変えれば(ツールバーの Σ )求められます。 現状のままで行うとしたらユニオンクエリを作成します。 Select 社員コード1,氏名1 from テーブル名 Union all Select 社員コード2,氏名2 from テーブル名 ; を実際のテーブル名、フィールド名にしたものをクエリのSQLビューにコピペします。 このクエリを元に集計クエリを作れば出来ますが、 ご質問のようなテーブル設計では破綻すると思います。 Access 2000 でのデータベースの正規化の基礎 http://support.microsoft.com/kb/209534/ja

bo281
質問者

お礼

参考になりました。ありがとうございます!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 【アクセス】 クエリの使用方法

    現在アクセスを使用してデータベースを作成して いるですが、複数のテーブルを一つのクエリに まとめたいのですが 例えば (Aテーブル) (Bテーブル) (Cテーブル)   日付      日付      日付 上記A~Cのデータの日付をクエリで一つにする ことはできますか? アクセス超初心者で基本的な質問かもしれませんが よろしくお願いします。

  • accessで二つの条件が一致するものを

    accessで二つの条件が一致するものを アクセスで原材料管理を行っていて 以下の二つのテーブルがあります 日別使用原材料テーブル 日付 製品コード 材料コード 2/1 A A-1 2/1 A A-2 2/1 B A-1 2/2 C B-2 2/2 A A-1 2/3 D C-3 日別不足材料テーブル 日付 材料コード 不足材料 2/1 A-1 10 2/1 A-1 2 2/2 A-1 5 2/2 B-2 1 この二つのテーブルがありこの二つのテーブルを一つにまとめたいと思います 具体的には以下のテーブルを作りたいのです 日別製品別材料不足テーブル 日付 製品コード 材料コード 不足材料 2/1 A A-1 10 2/1 B A-1 2 2/2 A A-1 5 2/2 C B-2 1 日付毎に 足りない分だけの材料を製品毎に表示させたいのですが 日別の製品別に足りない材料を結合する方法がわからないので よろしくお願いいたします。

  • Accessでの質問!

    お世話になります。 Accessで次のようなシステムを作っているのですが、やりたいことができません。 【テーブル】    ・社員情報テーブル(ID、社員コード、所属、氏名、製作所A、製作所B)    ・品物テーブル(ID、日付、品物、製作所)    ・製作所テーブル(ID、製作所)⇒製作所には製作所Aと製作所Bしかありません。    ・関連テーブル(ID、社員ID、品物ID)         関連テーブルの、社員IDは社員情報テーブルのIDと、品物IDは品物テーブルのID     でリレーションシップを設定しています。 【フォーム】    「品物テーブル」      ID[ ] 日付[ ] 品物[ ]      製作所[  ](コンボボックスで製作所テーブルから)    「サブフォーム 社員情報テーブル、関連テーブル」      社員コード[ ] 所属[ ] 氏名[ ] 製作所A[ ] 製作所B[ ]      社員ID[ ] 品物ID[ ]

  • アクセスでのデータ管理について(長文です。)

    アクセス初心者です。 これからデータの入力、管理、帳票をアクセスで構築しようと思っているのですが、アクセスはデータを入力した時点でデータが保存されてしまうので過去のデータが残りません。またデータの変更及び共有をうまくやりたいのですがよい方法がわかりません。 今回構築したいデータベースは、 1.過去の記録がすぐわかるようにしたい。(更新前のデータがわかるようにしたい。) 2.データの変更及び共有を簡略化したい。(A社で変更したデータをB社のデータベースにいれこみたい。) 【データベースの概略イメージ】  A社      B社 データベース1 データベース2(1と同じもの) テーブル1 → テーブル1 テーブル2 → テーブル2 テーブル3 → テーブル3 クエリ1    クエリ1 クエリ2    クエリ2 フォーム1   フォーム1 フォーム2   フォーム2 *リレーションあり *A社でテーブル1の内容を変更して、B社のテーブル1を新しいものに置き換えたい。 (本を読むとリレーションが崩れると書いてありました。) *B社で変更してA社に戻すこともある。 テーブル1 項目 ID 100 住所 あああ 氏名 △△様 電話番号 111-1111 *例えば、ID100のデータの氏名を変更するとき、変更前がどうだったかわかるようにしたい。(1月時点では△△様、2月時点では□□様とか) 誰かアクセスの操作方法に詳しい方がおられましたら、よい方法又はアクセスに関する詳しい本とかサイト等教えて下さい。よろしくお願いいたします。

  • accessの応用?

    WinXPで、Access2002です。 次のようなデータをもとにAccessのデータベースを作成するとして、一番いい方法を教えてください。 Aのデータのフィールド(本人) 本人コード(主キー)、本人氏名、本人誕生日、本人郵便番号、本人住所、本人電話番号 Bのデータのフィールド(責任者) (Aの)本人コード、(Aの)本人氏名、続柄、責任者氏名、責任者郵便番号、責任者住所、責任者電話番号 上記のようなデータベースが2つあるのですが、Bのデータで続柄が本人の場合は、各フィールドのデータをAのデータから持ってくるようにしたいのですが・・・。テーブルを増やすのがいいのか、それとも一括で作ってしまうのがいいのか・・・。どなたか教えてください。PS、後に各データを一覧表示で確認もしたいです。

  • Accessコピーについて(お願いします)

    AccessVBA初心者です。  OS XP ACCESS2003 テーブル1とテーブル2 データ構造が同じです。 テーブル2はデータ空です。 テーブル1 ----------------ーー ID  氏名    回数 1  Aさん    2 2  Bさん    3 ----------------ーーーー テーブル1のデータをテーブル2に回数分コピーしたいですが、VBA書き方どうしてもうまくいかないです。SQL文使用しない。 ほしい結果 テーブル2 ----------------ーー ID  氏名    回数 1  Aさん    2 2  Aさん    2 3  Bさん    3 4  Bさん    3 5   Bさん    3 ----------------ーーーー 教えてください。

  • ACCESSのレスポンス

    環境:ACCESS 2000 Win 2000 ACCESSで顧客データベースを作成しています。 ・顧客データの件数は約6,000件 ・テーブルの数は19 ・テーブルのみのデータベースAとそのテーブルからリンクをしてデータを抜いてきているデータベースBとAのテーブルのみをリンクしているデータベースCがある ・Aにはテーブルのみで、データを蓄積する目的のみに使用 ・Aはローカルではなくサーバー上にある ・Bはデータ入力用で複数の人で使う場合もある ・Cは別のソフトからAのデータを呼ぶためにある 上記の状態でBの入力用データベースを触っているのですが、フォームの保存やフォームを開くときなどにすごく時間がかかります。長いときは4・5分かかってしまいます。 このようにACCESSのレスポンスが悪くなるのはどういうことに原因があるのでしょうか? あまり詳しい状況の説明ができていなくて、分かりにくいかと思いますが、どなたか教えてください。

  • アクセスのフォーム、コードを入れると名前が出るのはなぜ?

    アクセス初心者ですが、フォームを作成時、疑問に思って考えるほど混乱してしまいました。 例えば、 Aテーブル:日付、店コード、売上のフィールドを作る。(主キーなし) Bテーブル:店コード、店名(主キーは店コード) リレーションは店コード(B)→店コード(A)に結び、すべての整合性にチェック それぞれのテーブルに、数件のデータを入力 この状態で入力フォームをウィザードで作ったのです。 Aテーブルからすべてのフィールド、Bテーブルから生徒氏名を選び、ウィザード任せにフォームを作りました。 このとき、できたフォームで出席番号を入れると何もしないのに、自動的に生徒氏名が入ってしまいます。 人に聞くと当たり前でしょ、みたいに言われたのですが、なんとなくわかるようでわかりません。どうして自動的に入るのでしょうか?ふりがなの自動入力みたいな設定をしたというのならわかるのですが、何もしてないのに。 すみません、自分でも、リレーションとか整合性とかについて、あるいはまだフォームとテーブルの関係について、よくわかってないせいなのだろうとは思うのですが、そこの所も合わせ、どなたか、分かりやすく教えていただけますか?宜しくお願いします。

  • Access2002 2つのテーブルのマージ方法

    いつもお世話になっております。 クエリについてお聞きします。 現在、2つのAccessDBが稼動しており、それを1つにまとめる作業をしています。 2つのDBには似通ったテーブルが存在し、それをマージする方法で悩んでいます。 テーブルA ・社員番号 ・社員氏名 ・フリガナ ・会社コード ・部署コード テーブルB ・従業員コード ・従業員名カナ ・従業員名 ・所属コード フィールドの定義としましては、 社員番号=従業員コード 社員氏名=従業員名 フリガナ=従業員名カナ 部署コード=所属コード となります。 全てテキストのレコードです。 これを、テーブルAを正にして、テーブルBのデータをAにマージしたいのです。 要件としましては、 1.テーブルAに存在する社員コードにマッチするレコードはそのまま残す(Bのデータは無視) 2.テーブルAに存在せず、Bに存在するものをAに追加する ということです。 クエリを使って色々試しましたが、どうしてもテーブルAに存在するものもアップデートしてしまい、困っています。 どなたかご教授願えれば幸いです。 よろしくお願いいたします。

  • ACCESS2000でDCount関数の使い方

    ACCESS2000で更新クエリの質問です。 先日同様の質問をさせていただきましたが、その後うまくできないところがあったので再度質問させていただきました。 内容は、フィールドの値のカウントを集計し、更新クエリを使用してデータを更新するという内容です。 前回の質問でDCount関数を用いて下記のとおり実行するとできるとのことでしたが、条件が複数ある場合どのように記述すれば いいのかを教えて下さい。 条件は、 (1)年月 =Aテーブル.年月 (2)コード=Aテーブル.コード (3)区分 =Aテーブル.区分 <こんな感じで実行しようとしたのですがうまく動きません> UPDATE Bテーブル SET" カウント数1 = DCount('区分','Aテーブル','[A年月]=[B年月] And [Aコード]=[Bコード] And [A区分]='001'') カウント数2 = DCount('区分','Aテーブル','[A年月]=[B年月] And [Aコード]=[Bコード] And [A区分]='002'') やりたいことは下記のとおりです。Aテーブルを集計しBテーブルの個数にAテーブルの個数の合計値を更新する。 <Aテーブル> A年月  Aコード A区分      200807  9991   001 200807  9991   001 200807  9991   001 200807  9991   002 200807  9991   002 <Bテーブル> B年月  Bコード Bカウント数1  Bカウント数2 200807  9991        0       0 ↓↓↓更新後 <結果:Bテーブル>   B年月  Bコード Bカウント数1  Bカウント数2 200807  9991        3       2              ↑       ↑    (Aテーブルの区分='001'  (Aテーブルの区分='002'     を集計した結果)       を集計した結果)

印刷できない?対処方法とは
このQ&Aのポイント
  • 印刷できない状況にお困りですか?原因や対処方法についてご紹介します。
  • 印刷トラブルに至った経緯や試したこと、エラーなどを教えてください。
  • お使いの環境や接続方法、関連するソフトや電話回線の種類について教えてください。
回答を見る

専門家に質問してみよう