• ベストアンサー

アクセスで連続データをテーブルとして作成したい

IDを自動で作成したいのです。IDは「日付データ-固有番」とします。 1 日付データは3/1ですから40599ではじまり翌年の3/31の40999までとします。 2 固有番は001~040までです。 作成される形は「40599-001」で「40999-040」が最終データとなります。 400×40の16000のデータが必要です。 2つの連続データの組合せを作成する簡単なテーブル作成方法を教えてください。

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

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

これ位だったら手作業でも・・デカルト積のばあいです。 Excel のオートフィルか何かで、A列に40599~40999の数字をずらっと 別シートに1~40をずらっと。 これをAccessにインポート。 それぞれのテーブル名を、T1とT2とします。 またフィールド名は、両方ともF1にしといてください。 クエリのデザインビューにT1とT2をドロップ。 連結はしません。 フィールド欄に、 日付データ-固有番:T1.F1 & "-" & format(T2.F1,"000") と入力。 で右クリックでクエリの種類をテーブル作成クエリに変更 作成するテーブル名を入力して、OK でクエリを閉じます。 このクエリを起動すれば先ほど設定したテーブルが出来上がります。

daio-you
質問者

お礼

nicotinismさん ありがとうございました。 結合をしなければm×nのレコードが作成されるのですね。 日付のテーブルをつくって保存し、ID用のテーブルをつくって保存しました。 それらのテーブルを「*」でフィールドに加えました。 希望の通り16000のデータが作成できました。 保存後、同じクエリで、2つのデータを「&"-"&」で結合し、テーブル作成としました。 おかげでとても楽にできました。 ありがとうございました。

その他の回答 (1)

  • layy
  • ベストアンサー率23% (292/1222)
回答No.2

新たに付番用テーブル、40レコード分を用意します。 日付 20110301 20110302 20110303 付番 001 002 003 ・・ 039 040 日付テーブルを元に選択クエリを作成、 この付番テーブルもテーブル追加、 このときに、結合させないこと。 こうすることで、 「日付テーブルのレコード数 × 付番テーブルのレコード数」 分の結果を出すことができます。 SELECT 日付テーブル.日付, 付番.付番, [日付] & "-" & [付番] AS 式1 FROM 日付テーブル, 付番 ORDER BY 日付テーブル.日付, 付番.付番; 出力側で、 式1: [日付] & "-" & [付番] とすると、 日付 付番 式1 20110301 001 20110301-001 20110301 002 20110301-002 20110301 003 20110301-003 20110302 001 20110302-001 20110302 002 20110302-002 20110302 003 20110302-003 20110303 001 20110303-001 ・・・ こんな感じのレコードが出せます。 ここで気をつけるのが、結合していないことで、 m×nのレコードを生成していますから、 もとのテーブル件数が不明なときは、結果が何件になるか見えないことです。 結果を一旦テーブルに保持しておくのもいいかと思います。

daio-you
質問者

お礼

ありがとうございました。結合をしなければm×nのレコードが作成されるのですね。 日付のテーブルをつくって保存し、ID用のテーブルをつくって保存しました。 それらのテーブルを「*」でフィールドに加えました。 希望の通り16000のデータが作成できました。 保存後、同じクエリで、2つのデータを「&"-"&」で結合し、テーブル作成としました。 おかげでとても楽にできました。 ありがとうございました。

関連するQ&A

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

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

  • 会員が作成したデータを格納するテーブルのプライマリキーについて

    例えば、写真サイトで各ユーザーが任意に アルバムを複数作成できるようにする場合、 アルバムテーブルのプライマリキーは、 以下3つのどれが好ましいでしょうか? (案1) PK アルバムID(DBの自動採番) Key ユーザーID (案2) PK ユーザーID PK アルバムID(同じユーザーIDの最大アルバムID+1で採番する) (案3) PK アルバムID(同じユーザーIDの最大アルバムID+1で採番する) PK ユーザーID 以下がわからず判断できません(; ;) ・アルバムに限らず会員が作成したデータを格納するテーブル全てにユーザIDが必要になると思いますが、 テーブル固有のキーとユーザIDを複合プライマリーキー(PK)とするのと、 テーブル固有のキーを単一プライマリーキーとするのでは どちらが良いのでしょうか? ・案2,3で複合キーとした場合、 ユーザーIDをテーブルの一番上の項目にするのと、 テーブル固有のキー項目となりえた項目のどちらを テーブルの一番上にするのが良いのでしょうか?

    • ベストアンサー
    • MySQL
  • Access クエリで新規テーブルを作成

    お世話になります。 クエリで新規テーブルを作成することは可能でしょうか。 テーブル作成クエリだと、既存のテーブルで抽出した内容で新規に作成する ことになるかと思います。 今回はまっさらな新規のテーブルを作成したいところです。 例えば、フィールド名とデータ型が  ID オートナンバー  受注日 日付型  商品   テキスト型 の場合だと、どのようになりますでしょうか。 ご教授の程、宜しくお願い致します。

  • エクセル 連続データ today

    エクセルについて。 A1に、today()で今日の日付(5/12)を入力して、 右に向かって連続データ(大晦日12/31)までを生成しました。 問題は、今日の日付が変わる毎に、大晦日を超えて、翌年の日付まで 自動で生成されてしまうことです。(日付が変わって、ファイルを開く度に) 必ず、12/31までしか表示しないという方法は、ありますでしょうか? よろしくお願いいたします。 |A B C ---------------- 1|5/12 5/13 エクセル2007

  • Access 旧データを新データに入替する方法

    テーブルAとBがあるとします。 テーブルAには A固有ID、データX(旧データ) が入っており テーブルBには B固有ID、A固有ID、データX(旧データ)、データY(新データ) が入っています。 ※「データX」に変更がない場合、テーブルBに同ID(タプル)は存在しません。 これを、クエリで出力するときに ID、データ(最新のもの)を出力したいのですがどうすれば良いでしょうか? 説明下手ですいません。 【テーブルBにデータがない場合】 A固有ID→ID データX→データ データY→(存在しません) 【テーブルBにデータがある場合】 A固有ID→ID データX→× データY→データ

  • アクセスで重複しない商品コードの作成

    AccessでDBを作成中です。まだ初心者で勉強中ですが、お知恵を貸して頂けますでしょうか。 服の形、生地の種類、色をフォームでそれぞれを組み合わせて、重複しない商品コードを作成したいと考えています。 01(形)-05(生地)-03(色)-001(オート番号)=010503001等 フォームでコンボックスリストから形・生地・色を選べるようにして、オートナンバーは自動、最後に自動的にこれら4つを組み合わせた商品コードが表示されればと思っていますが、フォームでこれが出来るためにはどうしたらよいでしょうか? 最後にオート番号を入れたのは、同じ組み合わせでも違う商品となる場合があるため、重複しないようにするためです。 3つのテーブルから出来なさそうだったので、考えたのは4つ目のテーブルを商品数テーブルとしてオート番号を振り、4つのテーブルからクエリをつくる。ここでづまずいてしまいました。 服のスタイル_テーブル ・スタイルID ・スタイル名 生地種類_テーブル ・生地ID ・生地名 色_テーブル ・カラーID ・カラー名 商品数_テーブル ・商品ID(00001~オートで) また、4つもテーブルを作る必要がない、他の方法がある場合はご教授頂けますようお願いいたします。長文失礼致しました。

  • Accessにてテーブルが異なるデータの引き算

    Access に異なるテーブルに収められているデータの「引き算」ほ方法をお教えください。 只今作成しているシステムは、簡単な在庫管理システムです。 今後、拡張していくこともあり得るという前提で各テーブルを作成しました。 作成したテーブルは以下のとおりです。 仕入先テーブル「仕入先ID・仕入先名・フリガナ・〒・住所1・住所2・TEL・FAX」 材料テーブル「材料ID・材料名」(単価はその時々で変わってくるのであえてここでは設定していません) 仕入テーブル「仕入ID・日付・仕入先ID・材料ID・仕入数量・単価」 払出テーブル「払出ID・日付・材料ID・払出数量」 在庫確認クエリにて以下の設定を行いました。 材料テーブルより「材料ID・材料名」 仕入テーブルより「仕入数量」 払出テーブルより「払出数量」 を設定し演算にて「在庫: Sum(Nz([仕入数量],0)-Nz([払出数量],0))」を入力しました。 データシートビューにて確認したところ、お互い発生した回数分だけ足されてしまい正確な在庫数量が表示されません。 例 ==================== 9/1 仕入数量 100 9/2 払出数量 50 9/3 仕入数量 100 9/4 払出数量 50 9/5 仕入数量 100 ==================== とした場合に、仕入数量600 払出数量300 となってしまいます。 以下は「SQLレビュー」の内容です。 SELECT 材料.材料ID, 材料.材料名, Sum(仕入.仕入数量) AS 仕入数量の合計, Sum(払出.払出数量) AS 払出数量の合計, Sum(Nz([仕入数量],0)-Nz([払出数量],0)) AS 在庫 FROM (材料 INNER JOIN 仕入 ON 材料.材料ID = 仕入.材料ID) INNER JOIN 払出 ON 材料.材料ID = 払出.材料ID GROUP BY 材料.材料ID, 材料.材料名; 解決方法をご享受くださいますようよろしくお願いいたします。

  • accessテーブル作成クエリを実行したときにオートNo(のような)振る方法

    お知恵をかしてください。 access2000でテーブル作成クエリを実行した時、作成したテーブルのデーターにIDを1番から振りたいのですが(オートNoのような感じで)、方法がわかりません。 計算式・SQLステートメントでの記述でも、どちらでも良いので、お分かりになる方教えてください★

  • Accessでテーブルのデータを検索してフォームに表示させる方法を教えてください

    現在、アクセスでテーブルを作成しました。テーブルは患者テーブルという名前でデータはID、名前、年齢です。フォームにはID、名前、年齢のフィールドを作成しました。IDのフィールドに、ID番号を入力し患者テーブル テーブルのID番号と一致すれば、名前と年齢を自動的に表示させるモジュールを作成したいのですが、どのように作成すればいいでしょうか?ご教示頂ければ幸いです。

  • 横に並んだデータから3つの連続セルを探して並び替えをしたい

    ID番号     日付 1222   20040501、20040531、20040601、20040801、20040802、20040803、20041123、・・・ というデータが並んでいます。この横にならんだデータから3日連続したデータを取り出して、残りを並び替えたいのですが良い方法がありますでしょうか? 上記の場合、20040801、20040802、20040803のデータだけ抜き出したいのです。 しかもこの3つの連続データは、IDごとに異なる日付のデータです。 最初は手で、3つの連続したデータを別シートにコピペしたのですが、量が膨大すぎておいつきません。IDは全部で700件くらいあります。オートフィルタを使おうにも結局、コピペと同じ手間になることに気づいて困っています。 何か良い方法があれば教えて頂けるととっても助かります。

専門家に質問してみよう