No.3ベストアンサー
- 回答日時:
元のレコードには並び順を指定できるユニークな(重複のない)フィールドは存在しますか
それがないと出来ませんよ
あれば頭から連番を振り3つずつ区切ってやるだけです
条件を満たす主キーという数値型のフィールドがあるとすると
伝票番号:(DCount("*","テーブル名","主キー<" & 主キー) \ 3) + 1
行番号:(DCount("*","テーブル名","主キー<" & 主キー) MOD 3) + 1
この回答への補足
回答頂きありがとうございます。
行番号はうまくいきました。
伝票番号ですが
伝票番号: (DCount("*","売上伝票","番号<" & [ID])\3+1)とすると
[ID]を3で割った番号から連番になってしまいます。
伝票番号: (DCount("*","売上伝票","番号>" & [ID])\3+1)とすると
番号を3で割った番号から連番になってしまいます。
番号から連番にする場合はどうすれば良いでしょうか?
お手数ですがご回答よろしくお願いします。
No.6
- 回答日時:
ゴミ回答のまま退散するのも・・・。
? CNNExecute("INSERT INTO Dempyo SELECT DISTINCT (ID+2) \ 3 AS 伝票番号,伝票日付 FROM DempyoDatas")
True
ID____伝票番号___伝票日付
14____10000_______2007/08/01
15____10001_______2007/08/01
16____1_____________2007/08/01
17____2_____________2007/08/01
と、一旦、仮の伝票番号を付けます。
? CNNExecute("UPDATE Dempyo SET 伝票番号=(伝票番号 + DBMAX('伝票番号', 'Dempyo')) WHERE 伝票番号<100")
True
D____伝票番号___伝票日付
14____10000_______2007/08/01
15____10001_______2007/08/01
16____10002_______2007/08/01
17____10003_______2007/08/01
これで、仮の伝票番号は正規化されます。
※DempoDatas は、もちろん、日々、クリアされることが大前提です。
※DempoDatas にもオートナンバーの[ID]があることも大前提です。
しかし、テキストからダイレクトにテーブルを生成した方が早いし間違いもないと思うのですが・・・。
No.4
- 回答日時:
<DempyoDatas>
ID___伝票番号______行番号___伝票日付_______商品名
1____2007080001_________1____2007/08/01___aaa1
2____2007080001_________2____2007/08/01___aaa2
3____2007080001_________3____2007/08/01___aaa3
4____2007080002_________1____2007/08/01___bbb1
5____2007080002_________2____2007/08/01___bbb2
6____2007080002_________3____2007/08/01___bbb3
例えば、こういうテーブルがあったとします。
[イミディエイト]
? CNNExecute("INSERT INTO Dempyo SELECT DISTINCT 伝票番号,伝票日付 FROM DempyoDatas")
True
<Dempyo>
ID___伝票番号______伝票日付
1____2007080001__2007/08/01
2____2007080002__2007/08/01
このように Dempyo にレコードが追加されます。
[ID]は、オートナンバーにしています。
[イミディエイト]
? DBSelect("SELECT Dempyo.ID, DempyoDatas.行番号, DempyoDatas.商品名 FROM Dempyo INNER JOIN DempyoDatas ON Dempyo.伝票番号 = DempyoDatas.伝票番号")
1;3;aaa3;
1;2;aaa2;
1;1;aaa1;
2;3;bbb3;
2;2;bbb2;
2;1;bbb1;
これで、伝票明細をSelect文で抽出できました。
ここまでくれば、後は、Insert文に組み込むだけです。
[イミディエイト]
? CNNExecute("INSERT INTO DempyoMeisais SELECT Dempyo.ID, DempyoDatas.行番号, DempyoDatas.商品名 FROM Dempyo INNER JOIN DempyoDatas ON Dempyo.伝票番号 = DempyoDatas.伝票番号")
True
<DempyoMeisais>
ID___行番号_______商品名
1___________1_______aaa1
1___________2_______aaa2
1___________3_______aaa3
2___________1_______bbb1
2___________2_______bbb2
2___________3_______bbb3
あたしが希望しているテーブルじゃないと思われるかも知れません。
が、そこはリレーショナルデータベースです。
クエリを作れば済むことです。
<クエリ1>
ID___伝票番号______伝票日付________行番号______商品名
1____2007080001__2007/08/01____________1______aaa1
1____2007080001__2007/08/01____________2______aaa2
1____2007080001__2007/08/01____________3______aaa3
2____2007080002__2007/08/01____________1______bbb1
2____2007080002__2007/08/01____________2______bbb2
2____2007080002__2007/08/01____________3______bbb3
ここでは、クエリを利用していませんが、全てはクエリで再現できます。
要は、ステップを追って攻められたら良いと思います。
No.2
- 回答日時:
以下のマクロをクエリーに組み入れれば出来ると思います。
以下はSQLの内容ですが、テーブル1に番号をいれています。
SELECT テーブル1.番号, 行番号([番号]) AS 番号作成
FROM テーブル1;
以下の条件で回答させていただきます。
1・明細行は不連続で無い
2・明細行はN行目~連続である
Option Compare Database
Option Explicit
Function 行番号(明細行 As Long) As Long
Dim num001 As Double
Dim num002 As Double
Dim num003 As Double
Dim 結果 As Long
num001 = 明細行 / 3
num002 = Int(明細行 / 3)
num003 = num001 - Int(num001)
If (num003 >= 0) And (num003 <= 0.34) Then
結果 = Int(num001) + 1
End If
If (num003 >= 0.34) And (num003 <= 0.67) Then
結果 = Int(num001) + 1
End If
If num003 = 0 Then
結果 = Int(num001)
End If
行番号 = 結果
End Function
No.1
- 回答日時:
質問が明確に理解できませんが。
頻繁に繰り返されることがない作業と理解して
1.テーブルにオートナンバー型のフィールドを追加する
2.以下の更新クエリーを実行する(テーブル名、フィールド名は適切に変更してください)
UPDATE SAMPLE SET SAMPLE.[NO] = ([ID]+1)/3;
4.オートナンバー型のフィールドを削除する
オートナンバー型で作成した連続する数値を3で割っています。
この回答への補足
回答頂きありがとうございました。分かりにくい質問で失礼しました。具体的に書きますとテーブル名明細 フィールド名[商品]・[数量]と言うデータがあります。これをテーブル名伝票 フィールド名[伝票番号]・[行番号]・[商品]・[数量]という形にしたいのです。[伝票番号]は最後に作られた番号+1から連番で作りたいです。作成希望例は下記になります。
最後に作成したデータの伝票番号が5の場合
テーブル名明細 → テーブル名伝票
[商品]・[数量] → [伝票番号]・[行番号]・[商品]・[数量]
商品A,5 → 5,1,商品A,5
商品B,2 → 5,2,商品B,2
商品C,4 → 5,3,商品C,4
商品D,3 → 6,1,商品D,3
商品E,5 → 6,2,商品E,5
商品F,1 → 6,3,商品F,1
商品G,2 → 7,1,商品G,2
商品H,1 → 7,2,商品H,1
次回は
商品I,5 → 8,1,商品A,5
商品J,2 → 8,2,商品B,2
商品K,4 → 8,3,商品C,4
商品L,3 → 9,1,商品D,3
このような形にしたいのです。よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) 伝票番号、品番、在庫としてマクロでもAccessでもデータ表を作りたいのですが、ご指導お願いします 1 2022/11/13 23:48
- メルカリ らくらくメルカリ便でクロネコヤマトを使って商品を送ってもらいましたが数日経っても伝票未登録のままです 1 2022/09/29 19:56
- 運輸業・郵便業 【至急】 国際便のインボイスについて、伝票番号が空欄なのですが、伝票はヤマト運輸さんのサイトを見て自 2 2023/03/16 14:41
- 郵便・宅配 ゆうパック。追跡番号だけで、着払いか?、元払いか?を判定することはできる? 1 2022/07/02 14:05
- Visual Basic(VBA) EXCEL関数LOOKUPとFILTERについての質問です 1 2022/12/21 05:53
- 戸籍・住民票・身分証明書 マイナンバーカードの更新について教えてくださいな マイナンバーカード更新の時期が来たので携帯で済ませ 2 2023/07/31 01:47
- Java Java 配列<選挙> 4 2023/07/31 15:07
- 確定申告 以前私の名前で利用者識別番号を作りました。 その番号で、主人の源泉徴収票のデータを入力して、 主人が 2 2023/03/02 10:02
- 運輸業・郵便業 クロネコヤマト宅急便で荷物を取りに来てくれる電話番号は何のですか後伝票を書いてくれる番号は何時にかけ 2 2022/04/27 21:11
- メルカリ メルカリで、らくらくメルカリ便のネコポスでコンビニで発送しました。 昨日夕方18時くらいに発送しまし 4 2023/07/27 07:14
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
2つのテーブルを結合して最大値...
-
各伝票に対して明細を1行目だけ...
-
商品番号を入力すると、商品名...
-
Accessのフォームで思った順番...
-
LEFT JOIN あいまいな外部結合
-
アクセスのフォームで連動した...
-
アクセス メインフォームの伝...
-
ACCESSでフォーム上のオブジェ...
-
特定条件での連番の振り方を教...
-
updateでグループ化
-
差し込み後、元データを変更し...
-
フィルターかけた後、重複を除...
-
エクセルで最後の文字だけ置き...
-
UPDATE文のWHERE条件に他のテー...
-
SQLで列名を変数にできないでし...
-
EXISTSを使ったDELETE文
-
SELECT 文 GROUP での1件目を...
-
エクセルの関数について教えて...
-
JANコードとPOSコードは同じ?
-
外部参照してるキーを主キーに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
商品番号を入力すると、商品名...
-
LEFT JOIN あいまいな外部結合
-
2つのテーブルを結合して最大値...
-
Accessのフォームで思った順番...
-
updateでグループ化
-
特定条件での連番の振り方を教...
-
IDの欠番
-
各伝票に対して明細を1行目だけ...
-
Accessレポート 複数条件での集計
-
ACCESSでフォーム上のオブジェ...
-
エクセルでリピート率
-
orace SQL文のエラー(ORA-0092...
-
Word差し込み印刷 数式について
-
アクセスのフォームで連動した...
-
文字列のあるキーワードから開...
-
SQL SELECTの記述方法について
-
ACCESS2000でコードごとの連番...
-
accessクエリの結果の縦横表示...
-
ACCESSでテキストデータ...
-
ACCESSのテーブル設計と...
おすすめ情報