私はプログラム初心者です。
業務の中でACCESSを使っております。
ACCESSでテーブルの変換についてのプログラムが分からなかったので
質問させて頂きました。
以下のようなテーブル(テーブル1)があります。
管理番号|NO|名前
1|NO.1|スプーン
2|NO.2|スプーン
3|NO.3|スプーン
4|NO.1|フォーク
5|NO.2|フォーク
6|""|ナイフ
7|NO.1|お鍋
以上のテーブルを新たにテーブル(テーブル2)を作成し、次のようなにしたいです。
管理番号|台数|名前
1|3|スプーン
4|2|フォーク
6|1|ナイフ
7|1|お鍋
テーブル変換の機能
・名前が同じ物の個数を表示する
・名前が同じ物の管理番号は若い番号にする
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
Access2003でのクエリ作成手順になります。
(他バージョンでもほぼ同じでしょう)・「デザインビューでクエリを作成する」から対象のテーブルを表示させます。
・クエリデザインツールバーにある「Σ」をクリックします。
(デザインの欄に「集計」が追加されます)
もしくは、クエリの種類を1度「クロス集計」にし、「選択」に戻しても同じ状態になります。
・テーブル内の「管理番号」をダブルクリックします。
フィールドに「管理番号」、テーブルに対象テーブル名、集計に「グループ化」が表示されます。
集計のところを「最小」に変更します。
並べ替えのところを「昇順」に変更します。
・テーブル内の「NO」をダブルクリックします。
フィールドに「NO」、テーブルに対象テーブル名、集計に「グループ化」が表示されます。
集計のところを「カウント」に変更します。
・テーブル内の「名前」をダブルクリックします。
フィールドに「名前」、テーブルに対象テーブル名、集計に「グループ化」が表示されます。
・ここで、表示を「データシートビュー」に切り替えます。(注1)
管理番号の最小、NOのカウント、名前 の表が表示されます。
名前「ナイフ」部分のカウントが得たいものではなく「0」になっています。
これは、NULLのデータはカウント対象外となっているためです。
・表示を「SQLビュー」に切り替えます。
1行目中ほどに 「 Count(テーブル名.[NO]) AS NOのカウント, 」があります。
NOに限定した個数を求めるのでなく、単にレコード数を得たいので
これを 「 Count(*) AS 台数, 」に書き換えます。
XXXXX AS YYYY は、XXXXXをYYYY名で、という意味合いになるので、
同様に「管理番号の最小」->「管理番号」に修正します。
・表示を「データシートビュー」に切り替えます。
これで求めたいクエリは作成することができました。
このクエリをそのまま使うのではなく、結果をテーブルに書き出すには続いて以下を行います。
・表示を「クエリ デザイン」に切り替えます。
・メニューの「クエリ」->「テーブル作成」をクリックします。
テーブル名を入力し、「OK」
クエリデザイン上変化はありませんが、以上で終了です。
確認)
表示を「SQLビュー」に切り替えます。
1行目最後あたりに、「 INTO テーブル名 」が追加されています。
これが結果をテーブルに書き出す命令部分になります。
(注1)
「'*'で選択したフィールドはグループ化できません。」というメッセージが出たら、クエリ作成をいったんあきらめます。
(クエリデザインの画面を閉じます)
メニューの「ツール」->「オプション」の「テーブル/クエリ」タブの「クエリ デザイン」部分の「全てのフィールドを表示する」チェックを外し「OK」します。
クエリ作成を初めからやり直します。
(注2)
(注1)の変更は、以降も変更されたままとなるので、今回だけ回避するには、
表示を「SQLビュー」にし、1行目最後の「 テーブル名.名前, * 」の「 , * 」を削除します。
書く練習がてら、初心者向けに書いてみましたがいかがでしたでしょうか。
回答が遅くなり申し訳ございません。
質問の仕方が悪かったようで、できればACCESSの操作方法ではなく、
コマンドボタンをクリックした際に並び替えが出来るVBAコードを
必要としております。
No.1
- 回答日時:
集計クエリを使います。
集計クエリについて何もご存じなければ、↓にざっと書いてあります。
http://www47.tok2.com/home/harako/a_qwhere.html
そのテーブル2を何のために作るのかという目的にもよりますが、この集計クエリをそのまま使ったほうが有利です。
テーブルにしたい積極的な理由があれば、たしか『テーブルとして保存する』という項目が、メニューにあったはずです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Oracle SQL update方法 2 2022/06/22 14:07
- Oracle sqlのupdate文で質問です。 テーブルBの番号をキーにテーブルAの身長をテーブルBの身長に更新 2 2022/11/02 15:15
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Oracle update文で質問です。 下記の条件でupdateをしたいですが、どのようにしたら良いでしょうか。 2 2022/06/23 10:51
- Oracle sqlで質問です。 Aテーブルの登録番号をキーにBテーブルから確認番号を取得したいのですが、Bテーブ 4 2023/05/18 13:08
- Access(アクセス) Access VBA を利用して、フォルダ内のファイルの名称を変更したい 1 2023/08/03 08:27
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- PHP MySql PHP 2つのテーブルをJOINで結合 user_idで抽出 1 2023/01/03 14:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでテーブル名やクエリ名...
-
ツリー構造をRDBで表現するには?
-
SQLで日付を条件に削除したい
-
SQLで条件指定結合をしたいがNU...
-
ACCESSで指定されたテーブルか...
-
2つのテーブルを比較して一致し...
-
Accessクエリでの、LIKE条件
-
ACCESSに同時アクセス(編集)を...
-
リンクテーブルを CopyObject ...
-
Accessレコードの追加や変更が...
-
Accessでvlookupみたいなことは...
-
3つの表を1つに縦に連結する
-
AccessでのNULLのレコードの表...
-
access テーブル内のレコード...
-
本テーブルに変更内容を反映す...
-
パススルークエリをテーブル作...
-
テーブル作成クエリで主キーを設定
-
ACCESS レポートに 自...
-
SQL Server Management Studio...
-
Accessでグループ化した中から...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでテーブル名やクエリ名...
-
Accessでテーブルからテーブル...
-
SQLで日付を条件に削除したい
-
access テーブル内のレコード...
-
Accessクエリでの、LIKE条件
-
Accessの追加クエリで既存のテ...
-
Accessレコードの追加や変更が...
-
Accessでvlookupみたいなことは...
-
ACCESSで指定されたテーブルか...
-
ACCESSに同時アクセス(編集)を...
-
3つの表を1つに縦に連結する
-
SQLで条件指定結合をしたいがNU...
-
2つのテーブルを比較して一致し...
-
リンクテーブルを CopyObject ...
-
ツリー構造をRDBで表現するには?
-
パススルークエリをテーブル作...
-
翌営業日までの日数をSQLで求め...
-
デザインビューで、連結式 を...
-
時間の足し算
-
INSERT時にデータ登録とmaxの発...
おすすめ情報