![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
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で質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessフォームで複数条件でフィールドの値を表示する方法 4 2022/07/21 10:47
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- USBメモリー・SDカード・フラッシュメモリー PDF文書をCD-Rで配るときの注意事項 4 2022/03/31 16:49
- その他(プログラミング・Web制作) powershell で書いたプログラムでcd が動かない 5 2023/04/08 14:47
- 邦楽 中島みゆきさんの「最後の女神」って曲について 1 2023/04/05 10:04
- Windows 10 コマンドプロンプトの使い方 1 2022/10/13 14:43
- スピーカー・コンポ・ステレオ CD-Rについて教えていただけませんか!? 9 2022/12/12 23:04
- ネットスーパー 皆さんはネットショップで 10 2022/10/01 13:36
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- Windows 10 Windows11でMP3 CDを作る方法 17 2022/10/17 19:17
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
工事現場の騒音は泣き寝入りす...
-
建築現場の騒音で気が狂いそうです
-
工事前の挨拶がない業者さんへ
-
掘削工事の積算
-
電気工事などの入線と配線について
-
材質 ST
-
近所の工事現場へのクレーム、...
-
工事で家が揺れている 誰に言...
-
南側に3階建ての住宅が2軒建ち...
-
子供による騒音:訴えようと思...
-
玄関のひさしの上部分ががめく...
-
住宅建築中 職人さんの駐車場...
-
KBM
-
竣工図はだれが書くんですか?
-
【とても困ってます!】隣の工...
-
自宅のフェンスに、隣家の布団...
-
工事 騒音 家の前でやっている...
-
計画地盤高のFHは標高ですか?
-
工事を早朝からしていますがこ...
-
不審者?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報