ACCESS2007
どなたかよろしくお願いします。
工事台帳をACCESSにて作成しようとしております。
工事管理の為、一つ工事に工事CDを作成します。
得意先CD+401~499までの数字の組み合わせです。
例)AX工務店 得意先CD=AX AX401、AX402...AX499
BX建設 得意先CD=BX BX401、BX402...BX499
上記のように、得意先CDごとに401~499の工事CDを持たせたいのです。
入力フォームにて得意先CD入力後、工事CDが取得できるように
Private Sub 得意先CD_AfterUpdate()
Me![工事CD] = Me![得意先CD] & Format(DCount("工事CD", "T工事台帳") + 1, "400")
End Sub
と記述しましたが、得意先CDにかかわらず番号のみが+1され続けるため、
望む形ではありません。
どのようにしたらよいでしょうか?
また、現在3つの事業部があり一つの現場に最大3つの工事CDができることもあります。
その場合、"D"または"S"をつけます(事業部の頭文字です)
AX401、DAX402、SAX403など、同一の現場であっても数字部分は重複させません。
その場合、2段階で採番(まどろっこしいですが)させようかと思ってますが、
良い方法がありますでしょうか?
なにとぞよろしくお願いします。
No.3ベストアンサー
- 回答日時:
得意先CD は、2文字と仮定します。
以下でどうなりますか。(見難かったらすみません)
Me![工事CD] = Me![得意先CD] _
& Format( _
Nz( _
DMax("Val(Right(工事CD,3))" _
, "T工事台帳" _
, "工事CD Like '*" & Right(Me![得意先CD], 2) & "*'") _
, 400) + 1 _
, "000")
やっている事は、
DMax で、Me![得意先CD] の右側2文字の 工事CD を「T工事台帳」で探して・・・
あったら 工事CD の右側3文字を数値にした最大を求めておきます。
対象のものが無かったら初期値の 400 にするように Nz を使っておきます。
その値を +1 して、3桁表示に Format を使い、元々の Me![得意先CD] に付ける。
Me![得意先CD] が、AX、DAX、SAX なら、 '*AX*' で探します。
右側3文字を数値にした最大を求めるので、AX、DAX、SAX の区別はありません。
Me![得意先CD] は2文字以上等、チェックが必要になると思います。
また、上記では 499 を超える判別はしていないので・・・
以下は雰囲気で
事業部の「D」「S」を、別途「txt事業部」に設けたとすると
Me![工事CD] = Me![txt事業部] & Me![得意先CD] _
& Format( _
Nz( _
DMax("Val(Right(工事CD,3))" _
, "T工事台帳" _
, "工事CD Like '*" & Me![得意先CD] & "*'") _
, 400) + 1 _
, "000")
これであれば、得意先CD は2文字・・・という制限はなくなるかと
お礼が大変遅くなってしまい申し訳ございませんでした。
数週間の悪戦苦闘から、解放されました。
ご丁寧な解説も非常にわかりやすかったです。
本当にありがとうございました。
No.2
- 回答日時:
原始的ですが
得意先テーブルに最終工事No.(規定値=400)のフィールドを
定義してこれを管理するのはどうでしょう
Private Sub 得意先ID_Exit(Cancel As Integer)
If 工事No. = 0 Then
工事No. = 最終工事No. + 1
最終工事No. = 工事No.
End If
End Sub
工事テーブルの工事No.の規定値は0にしています
※ DCount だとレコードを削除された場合重複の工事No.が設定されます。
お礼が大変遅くなってしまい申し訳ございませんでした。
このような考え方もあったんですね。
参考になりました。
ありがとうございました。
No.1
- 回答日時:
DCountの使い方が間違っています。
DCount("工事CD", "T工事台帳")
これだと、工事CDが入っているレコードの件数を返すだけです。
特定の得意先のレコードの件数を返したいなら、3番目の引数(条件式)を指定います。
例えば、得意先CDがAXの件数なら、
DCount("工事CD", "T工事台帳", "得意先CD = ""AX""")
入力フォームの[得意先CD]を使う場合は、
DCount("工事CD", "T工事台帳", "得意先CD = """ & Me![得意先CD] + """")
とします。
>また、現在3つの事業部があり一つの現場に最大3つの工事CDができることもあります。
>その場合、"D"または"S"をつけます(事業部の頭文字です)
>AX401、DAX402、SAX403など、同一の現場であっても数字部分は重複させません。
3つの事業部はどのようなテーブル構成になっているのでしょうか?
もし、1つのテーブルに全部登録されていて、同じ得意先CDを使っているのなら、上記の方法で問題なさそうですが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
ロボットの住む世界で流行ってる罰ゲームとは?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
文字列を含んだ自動採番
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
土日も近所の新築工事の騒音で...
-
南側に3階建ての住宅が2軒建ち...
-
工事現場の騒音は泣き寝入りす...
-
一軒家の新築工事の休みについて
-
近所の工事現場へのクレーム、...
-
不審者?
-
建築現場の騒音で気が狂いそうです
-
材質 ST
-
工事前の挨拶がない業者さんへ
-
掘削工事の積算
-
【とても困ってます!】隣の工...
-
工事 騒音 家の前でやっている...
-
子供による騒音:訴えようと思...
-
工事で家が揺れている 誰に言...
-
お隣が新築工事中。非常識では...
-
実家の南側に3階建の家が建つこ...
-
来週の火曜日に上棟があります...
-
退去後のトラブル
-
工事のことなんですが、これっ...
-
基礎の高さ不足について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
工事現場の騒音は泣き寝入りす...
-
近所の工事現場へのクレーム、...
-
工事前の挨拶がない業者さんへ
-
南側に3階建ての住宅が2軒建ち...
-
材質 ST
-
不審者?
-
建築現場の騒音で気が狂いそうです
-
土日も近所の新築工事の騒音で...
-
掘削工事の積算
-
工事 騒音 家の前でやっている...
-
お隣が新築工事中。非常識では...
-
工事で家が揺れている 誰に言...
-
アパートの一室に住んでいる住...
-
【とても困ってます!】隣の工...
-
隣の家が解体されて、私の家に...
-
実家の南側に3階建の家が建つこ...
-
計画地盤高のFHは標高ですか?
-
私有地に工事用車両を駐車させ...
-
子供による騒音:訴えようと思...
-
自宅のフェンスに、隣家の布団...
おすすめ情報