- ベストアンサー
アクセスで連続データをテーブルとして作成したい
IDを自動で作成したいのです。IDは「日付データ-固有番」とします。 1 日付データは3/1ですから40599ではじまり翌年の3/31の40999までとします。 2 固有番は001~040までです。 作成される形は「40599-001」で「40999-040」が最終データとなります。 400×40の16000のデータが必要です。 2つの連続データの組合せを作成する簡単なテーブル作成方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
これ位だったら手作業でも・・デカルト積のばあいです。 Excel のオートフィルか何かで、A列に40599~40999の数字をずらっと 別シートに1~40をずらっと。 これをAccessにインポート。 それぞれのテーブル名を、T1とT2とします。 またフィールド名は、両方ともF1にしといてください。 クエリのデザインビューにT1とT2をドロップ。 連結はしません。 フィールド欄に、 日付データ-固有番:T1.F1 & "-" & format(T2.F1,"000") と入力。 で右クリックでクエリの種類をテーブル作成クエリに変更 作成するテーブル名を入力して、OK でクエリを閉じます。 このクエリを起動すれば先ほど設定したテーブルが出来上がります。
その他の回答 (1)
- layy
- ベストアンサー率23% (292/1222)
新たに付番用テーブル、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のレコードを生成していますから、 もとのテーブル件数が不明なときは、結果が何件になるか見えないことです。 結果を一旦テーブルに保持しておくのもいいかと思います。
お礼
ありがとうございました。結合をしなければm×nのレコードが作成されるのですね。 日付のテーブルをつくって保存し、ID用のテーブルをつくって保存しました。 それらのテーブルを「*」でフィールドに加えました。 希望の通り16000のデータが作成できました。 保存後、同じクエリで、2つのデータを「&"-"&」で結合し、テーブル作成としました。 おかげでとても楽にできました。 ありがとうございました。
お礼
nicotinismさん ありがとうございました。 結合をしなければm×nのレコードが作成されるのですね。 日付のテーブルをつくって保存し、ID用のテーブルをつくって保存しました。 それらのテーブルを「*」でフィールドに加えました。 希望の通り16000のデータが作成できました。 保存後、同じクエリで、2つのデータを「&"-"&」で結合し、テーブル作成としました。 おかげでとても楽にできました。 ありがとうございました。