• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Accessのオプショングループ)

Accessのオプショングループで顧客ごとに連番の受付コードを設定する方法

このQ&Aのポイント
  • Access2000を使用している場合、オプショングループを使用して顧客ごとに連番の受付コードを設定する方法について教えてください。
  • 顧客を選択した後、注文を登録するフォームを開きますが、受付コードに顧客ごとに連番を付与したいと考えています。
  • マクロで処理分岐を行い、顧客が変わる度にコードの頭のアルファベットを変更し、連番を1から付与したいです。どのようにすると良いでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • BigBen3
  • ベストアンサー率33% (5/15)
回答No.1

いろいろ方法はあると思いますが、こんなのはいかがでしょうか? まずは顧客テーブルを作ります。 [tblCustomer] <フィールド名>  <説明>    <データー型> customerId        ID         数値型 customerName      名前        文字列 customerAlphabet      アルファベット   文字列 customerSequenceNo   連番        数値型 で、注文を登録するフォームにあるオプショングループのAfter_Updateのイベントにコードで処理をします。 オプショングループを fraCustomer 受付コードのテキストボックスを txtOrder と名づけてください。 で、fraCustomerの更新後のイベントプロシージャーに Private Sub fraCustomer0_AfterUpdate() Dim intCustomer As String ‘顧客コード Dim intSequenceNo As Integer ‘連番 Dim strAlphabet As String ‘アルファベット ‘受付コードの頭文字を顧客テーブルより取得します。 strAlphabet = DLookup("CustomerAlphabet", "tblCustomer", "CustomerId =" & me.fraCustomer) ‘受付コードの連番を顧客テーブルより取得します。 intSequenceNo = DLookup("CustomerSequenceNo", "tblCustomer", "CustomerId =" & me.fraCustomer) ‘テキストボックスに受付コードを代入します。 Me.txtOrderNo = strAlphabet & Format(intSequenceNo, "0000") End Sub とりあえず、こんな感じでどうでしょうか? この処理は連番の取得からテキストボックスへの受付コードを書き入れる処理です。更新を自動的にする処理は入っていません。 私はDAOのレコードセットを使うのが好きなのですが、shin1966さんがどれほど精通しているかによって分かりにくいかもしれないのでとりあえず、ここまでにしておきました。 もし、更新の処理も必要な場合は返答下さい。レコードセットを使えば簡単にできますが、あまり得意でない場合は回り道ですが簡単な方法もあると思います。 私は独学のため、本文中の単語は間違っているかもしれませんのでご了承を。

shin1966
質問者

お礼

ありがとうございました。 初心者なものでわからない言葉もありましたが一つずつ確認しながら進めさせてもらいました。 今後もいろいろな場面で活用させていただきます。

関連するQ&A