過去の桐井戸端BBS (桐ver.9)
28334 納品書や注文書などにに伝票番号をつけるとき伝票ごとに自動で連番をつけてくれる関数はありますか tetsu−s 2004/11/30-23:17
さくらさんのご質問(11/2、28089)の内容と重複してるかもしれませんが、詳しく教えて下さい。

納品書や注文書などにに伝票番号をつけたい場合、伝票ごとに自動で連番をつけてくれる関数を教えてください。

伝票形式のフォーム作成で
[伝票番号],[年月日],[客先]はグループ項目として作成
グループ追加で一番最初に[伝票番号]に自動で連番が入力されてくる
といったものを作りたいのですが、教えて下さい。

表定義で[伝票番号]のデータ型をカウンター型にして、フォームでは伝票形式で
[伝票番号][年月日][客先]などでグループ化した場合、同じグループで2行以上の明細を入力できない事がわかりました。
(カウンター型は原則として重複禁止ですよね?)

また、さくらさんの回答にでてきた#順位や#グループの関数はデータ入力に
置換などで再計算に行う関数のような説明がマニュアルに掲載されてましたが、
もし#順位や#グループの関数を使うとしたら、どこにどのような計算式を入れればいいのか教えてください。

下手な質問文書でわかりにくいかもしれませんが、お願いします。
28343 Re:連番の自動入力 宮城 2004/12/01-17:34
記事番号28334へのコメント
tetsu−sさん、こんにちは。

一番簡単かつお手軽なのは伝票ごとの連番を管理する(?)表をかまえ、
1伝票1行とし、[連番]の挿入初期値式に次のように設定します。

#直前値( [] , 0 )+1

妙なところに行挿入さえしなければ 1から順にカウントアップしていきますし、
1、2、3、4、5ときて次は 11にとばしたいとき、次の行の 6を11に変えれば次は 12からとなります。
厳密とはいいがたく無茶な入力をすれば無茶になりますが、普通に使うなら一番使いやすいと思います。

本体の1伝票複数行ある表からは表引きで伝票番号を引かせます。

>(カウンター型は原則として重複禁止ですよね?)

例外はありません。

28348 Re:連番の自動入力 佐田 守弘 2004/12/01-22:56
記事番号28334へのコメント
tetsu−sさん
教科書的な答えになりますが、次の様に2つの表で管理するのが良いかと思います。
名称は仮につけたものです。

@伝票マスタ
注文1件毎に1レコードとする表です。カウンタ型の伝票番号を持つので構わないと思います。
もちろん、#直前値([],0)+1で連番号を発生させ
かつ、重複禁止の索引を付けてもできると思います。

A売上明細
売上の明細1件毎に1レコードとする表です。商品ID、数量などの項目を持ち、
伝票番号は伝票マスタに対応する値を入れます。

メイン&サブフォームを使えば、メイン部に伝票マスタ、サブフォーム部に売上明細を表示しながら入力できます。
詳しい作り方は私のサイトにサンプルとして掲載してありますから、参考にして下さい。

佐田守弘(KS-00119)
28354 Re:連番の自動入力 tetsu−s 2004/12/02-01:46
記事番号28334へのコメント
tetsu−sさん

佐田さん、宮城さんご回答ありがとうございます。
メイン&サブフォームで解決しました。
自分のやりたい仕事が明細1行ごとに番号を振って管理することもかなり有効性がでてきました。
ほんとにありがとうございます。また色々教えて下さい。

戻る