Accessで条件が2つのグループに連番をふる

このQ&Aのポイント
  • Accessでの連番処理はよくある質問のようですが、今回質問させていただきます内容につきまして過去分から検索することができませんでした。
  • クエリーかSQLを用いて、支店名と区分が同じグループで連番をふるという処理を行いたいのですが、どなたかご教授願えませんでしょうか。
  • 通番はオートナンバー型、支店名と区分はテキスト型です。
回答を見る
  • ベストアンサー

Accessで条件が2つのグループに連番をふる

Accessでの連番処理はよくある質問のようですが、今回質問させていただきます内容につきまして過去分から検索することができませんでした。何卒よろしくお願いいたします。 ・クエリーかSQLを用いて、 ・支店名と区分が同じグループで連番をふる。 という処理を行いたいのですが、どなたかご教授願えませんでしょうか。 <完成イメージ> 通番 支店名 区分 連番  1   東京   A   1  2   東京   B   1  3   大阪   B   1  4   東京   B   2  5   大阪   A   1  6   東京   A   2  7   大阪   A   2  8   大阪   A   3  9   東京   B   3  10  大阪   B   2 通番はオートナンバー型、支店名と区分はテキスト型です。

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

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.1

考え方は、 支店名、区分が一緒のもので、通番(自分を含め)が小さい方から何個あるか となると思います。 何個・・・・DCount を使って求めます。(雰囲気、以下の様な記述で) DCount("*","テーブル名","支店名='" & 支店名 & "' AND 区分='" & 区分 & "' AND 通番<=" & 通番) 支店名、区分はテキスト型なので、' ' で括るように クエリのSQLビューに以下を記述すると、更新クエリが出来上がります。 UPDATE テーブル名 SET 連番=DCount("*","テーブル名","支店名='" & 支店名 & "' AND 区分='" & 区分 & "' AND 通番<=" & 通番); テーブル名のところを実際のテーブル名に置換えて、保存し、閉じ、 実行すると、連番が設定されると思います。

access_renban
質問者

お礼

お礼が遅くなりました非礼をお詫びいたします。 この方法を求めておりました。 連休中にもかかわら迅速にお教えいただきまして誠にありがとうございました。 私も他の方に回答できるようスキルを高めたいと思います。

関連するQ&A

  • MAX値を条件にしたSQLで困っています。

    MAX値を条件にしたSQLで困っています。 以下のようなデータ(例)があります。 部番A、連番1、明細・・・ 部番A、連番2、明細・・・ 部番A、連番3、明細・・・ 部番A、連番4、明細・・・ 部番B、連番1、明細・・・ 部番B、連番2、明細・・・ 部番単位で、連番が最大であるデータのみを取得したいです。 上記の例だと、 部番A、連番4、明細・・・ 部番B、連番2、明細・・・ の2件です。 SQLをご教授ください。 よろしくお願いします。

  • アクセスの追加クエリについて

    二つのテーブル間(AとB)を追加クエリを使い AからレコードをBに追加することは出来たんですが、 逆にBからAにレコードを追加しようと選択クエリを追加クエリに変更しようとしたんですが、ウィザードの追加先テーブル名にAのテーブル名が表れないですがその理由が全く分からないので分かる方教えていただけませんか? AとBのレコード内のフィールドは同じです。 AからBにレコードを移行する処理としてマクロを使いアクションとして ・クエリを開く(これは追加クエリです) ・SQLの実行(上と同じクエリを削除クエリに変更し、そのSQL文をSOLステートメントに貼り付けました) 上の処理は問題なく出来たので逆のBからAへレコード移行処理のマクロを作ろうとしたのですが、追加クエリの追加先テーブルにテーブルAの名前が出てこないので困っています。こういったAからB。BからAという処理は追加クエリで出来ないのでしょうか?

  • ACCESSで、コンポをつかって絞り込みの場合?

    コンポでA,Bの区分表示され Aを選ぶとコンポ2に A区分のみa1,a2が表示される ようにしたいです コンポ1--------->コンポ2 区分       商品名 A         a1 A         a2 B         b1 B         b2 さて コンポ1の 更新後処理 で”マクロ1” を指定し そのマクロでは アクション=再クエリ としますが 再クエリの対象をコンポ2 にしたいのですが ? マクロでデザイン画面では アクションの欄と コントロール名の欄しかありません とすると コンポ2を再クエリしたいとき どう、記述するのでしょうか

  • MSアクセスクエリにて連番でIDを振りたい

    お世話になります。 MSアクセスのクエリにて、IDを連番で振りたいと考えています。 たとえば、 項目1 項目2 項目3 A B C A B A A B B A B A A B C というクエリがあったら、 項目1 項目2 項目3 ID A B C 1 A B A 2 A B B 3 A B A 4 A B C 5 というように新規でIDを連番でカウントアップしていくことが 要望です。できる限りVBAは使いたくなく、クエリの 演算フィールドにて関数などはありますでしょうか? 以上、お願い致します。

  • アクセスレポートのグループごとの通し番号について

    いつもお世話になっております。 Accessのレポートにおけるグループごと通し番号の振り方について、お教えください。 下記のようなテーブルがあり、業者区分、地区、物品区分でグループ化しレポートに出力しています。 【テーブル名:T_予算】 業者区分 地区 物品区分 物品名 市内 A 消耗品 あ 市内 A 消耗品 い 市内 A 消耗品 う 市内 A 消耗品 え 市内 A 消耗品 お 市外 B 食糧 か 市外 B 食糧 き 市外 B 食糧 く 市外 B 食糧 け 県内 C 役務 こ 県内 C 役務 さ 県内 C 役務 し 上記テーブルのデータで下記レポートのように連番を振りたいと思っています。 業者区分、地区、物品区分は同じ内容としていますが、連番を振る基準となるのは、最初のグループ化にしている業者区分を想定しています。 実際使用するデータも3つあるグループ化のうち、最初でグループ化している内容で連番を振るようにしています。 【レポート名:R_予算】 [業者区分グループ]  市内 [地区グループ]  A [物品区分グループ]  消耗品 [物品名]  あ 1 ← 連番  い 2  う 3  え 4  お 5 [業者区分グループ]  市外 [地区グループ]  B [物品区分グループ]  食糧 [物品名グループ]  か 1  き 2  く 3  け 4 [業者区分グループ]  県内 [地区グループ]  C [物品区分グループ]  役務 [物品名グループ]  こ 1  さ 2  し 3 また、業者区分グループのヘッダーは、複数ページになった場合を想定し、「セクション繰り返し」を「はい」に設定しています。 上手く伝わらない表現ですみませんが、ご教授をよろしくお願いします。

  • Accessの連番(文字+日付+文字)

    フォームで新規入力をする際に自動で連番を振りたいです 初心者でいろいろと調べているのですがうまくいきません 下記のような連番を振る方法を教えてください "Eyymmdd A "E"は固定で yy(西暦2ケタ)mm(月)dd(日)A(Aから始め、同じ日だとB,C,…と最大26(Z)まで)振っていく。日が変わるとまたAから始まる 「テーブル名」連絡文書E 「クエリ名」連絡文書Eクエリ 「フォーム名」連絡文書E 「フィールド名」管理番号(テキスト型) E110105 A E110130 A E110130 B E110130 C E110202 A… と"E"を固定 yy(西暦2ケタ)mm(月)dd(日)Aから始まり、同日であればB,C~と 日が変わるとAからまた始まるという連番をふりたいです 煮詰まってしまい、どうしてよいかわからない次第です 初心者にとても難しい事は承知しておりますが、何卒よろしくお願い致します

  • エクセル関数について教えてください

    sheet1にはA列にコード番号が入力されており、B列にグループごとの通し番号、C列にグループ名が表示されています。 そこからsheet2にC列グループ名とB列通し番号から検索し、A列コード番号が抽出されるようにしたいのですが、やり方が解りません。 どなたかご教授お願いします。 Sheet1                   Sheet2    A   B     C                  A      B 1  1898  1  東京           1  グループ名 グループ名 2  1854  2  東京           2  3  1876  3  東京           3   A1の通番1  B1の通番1 4 22354  1  青森           4   A1の通番2  B1の通番2 5 22398  2  青森           5  A1の通番3  B1の通番3 6 22376  3  青森           6  A1の通番4  B1の通番4 7  3898  4  東京           7  A1の通番5  B1の通番5 8 16622  2  群馬            8  A1の通番6  B1の通番6 9 12242  1  大阪           9  A1の通番7  B1の通番7 実際にはもっと複雑なのですが、これだけ解れば応用で何とか変更は出来ると思うので、お願いします。 ただ、出来れば作業用のセルは使用しない方向でお願いします。 他のデータに影響が出てきますので・・・

  • 条件別に連番を振る方法を教えてください。

    お世話になります。 下記の様な条件による連番をふるマクロを組みたいと考えており、 色々考えてたのですがやり方が分からなく困っています。多少複雑だとは思いますが、すみませんが、詳しい方よろしくお願い致します。 内容として、例えばですが野球チームの選手をランク別にあるコーチに割り当てたいとします。 T_コーチマスタ(テーブルA) ランク  コーチ名  担当数MAX --------------------------------  A    鈴木     2 ←Aランク選手に割り当てたいコーチ  A    橋本     2 ←Aランク選手に割り当てたいコーチ  B    田中     2 ←Bランク選手に割り当てたいコーチ  B    青木     3 ←Bランク選手に割り当てたいコーチ  C    佐藤     2 ←Cランク選手に割り当てたいコーチ (補足:ランク順に昇順しています) T_選手マスタ(テーブルB) ランク   選手名  人数(連番) コーチ名 --------------------------------------------  A     加藤  B     山本  B     渡辺  B     吉田  A     佐々木  A     木村  C     太田 (*得たい結果) ランク   選手名  担当数(連番) コーチ名 --------------------------------------------  A     加藤     1       鈴木  A     佐々木    2       鈴木  A     木村     1       橋本  B     山本     1       田中  B     渡辺     2       田中  B     吉田     1       青木 ※選手ランク(T_選手マスタ)別に、コーチ名と連番を割り当てたいのですが、コーチにも教えられる人数が限られており、担当数MAXまでしか連番をふれません。担当数を超えると次(下)のコーチ(ランク別)に割り当てたいです。担当者MAXがなく一人のコーチが全員分連番をふれればいいのですが・・・。  連番を振るだけのコードだけは分かったのですが、どうすれば上手い具合にできますでしょうか??(SQLで方法がありますか?) '連番のみのコード Sub DAO_numbers() Dim db As DAO.Database Dim rs As DAO.Recordset Dim fd As DAO.Field Dim SQL As String Dim inCount As Integer Set db = CurrentDb() SQL = "SELECT * FROM T_選手マスタ ORDER BY ランク" Set rs = db.OpenRecordset(SQL, dbOpenDynaset) Set fd = rs.Fields("人数") If rs.BOF = False Then rs.MoveFirst inCount = 1 Do Until rs.EOF rs.Edit fd = inCount rs.Update inCount = inCount + 1 rs.MoveNext Loop End If rs.Clone: Set rs = Nothing db.Close: Set db = Nothing End Sub (上記コードは使わないのであれば無視しても構いません。) 以上よろしくお願い致します。

  • ACCESSのクエリで連番をつけたい!

    過去に同じような質問がありますが、どうしてもうまくいかないので 再度質問させてください。 当方はそれほどスキルが高くないのでSQLなどはさっぱりです・・・・ 下記のような処理を行いたいのですが、 何卒宜しくお願いいたします。 ・「CUSTOMER」ごとに「SHIPMENTDATE」の昇順で「NO」に連番をつけたい ・データは数字ではなくTEXT ・全データは15万件ほど テーブル名:カウント対象受注 CUSTOMER ORDER REGULAR SHIPMENTDATE NO 00020041 000160104 0024174 2011/3/15 4 00020033 000001931 0000323 2011/2/20 2 00020009 000052835 0008807 2010/12/12 1 00020041 000160103 0024174 2011/2/15 3 00020033 000001930 0000323 2010/12/20 1 00020041 000160102 0024174 2011/1/15 2 00020033 000001932 0000323 2011/4/20 3 00020009 000052836 0008807 2011/1/12 2 00020041 000160101 0024174 2010/12/15 1 00020041 000160105 0024174 2011/4/15 5

  • エクセル 行挿入のマクロについて

    こんばんは、エクセルのマクロについてお伺いします。 現在 A1:支店名 B1:連番 C1:在庫数 全部で1000行位入力があります。 ・A列には支店名 ・B列には連番は1・2・3~と1000件位 ・c列には在個数にはそれぞれ1桁から2桁の数字 【質問】 在庫数の数だけその連番の行を増やしたい。 例えば、 A2:東京支店 B2連番:1 C2在庫数:3 だとすると2行目のあとに2行挿入し在庫数が3なので下記のように3行にしたい。 A2 東京支店 B2連番 1 C2 在庫数 1 A3 東京支店 B3連番 1 C3 在庫数 空欄 A4 東京支店 B4連番 1 C4 在庫数 空欄 何せ数が多いのでマクロをお教え頂ければ助かります。 ※その際、支店名と連番は同じ物がはいるとありがたいです。 ※在庫数は空欄で構いません。 マクロでなくても方法があればお教え下さい。 よろしくお願い致します。

専門家に質問してみよう