- ベストアンサー
Accessのオプショングループで顧客ごとに連番の受付コードを設定する方法
- Access2000を使用している場合、オプショングループを使用して顧客ごとに連番の受付コードを設定する方法について教えてください。
- 顧客を選択した後、注文を登録するフォームを開きますが、受付コードに顧客ごとに連番を付与したいと考えています。
- マクロで処理分岐を行い、顧客が変わる度にコードの頭のアルファベットを変更し、連番を1から付与したいです。どのようにすると良いでしょうか?
- みんなの回答 (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さんがどれほど精通しているかによって分かりにくいかもしれないのでとりあえず、ここまでにしておきました。 もし、更新の処理も必要な場合は返答下さい。レコードセットを使えば簡単にできますが、あまり得意でない場合は回り道ですが簡単な方法もあると思います。 私は独学のため、本文中の単語は間違っているかもしれませんのでご了承を。
お礼
ありがとうございました。 初心者なものでわからない言葉もありましたが一つずつ確認しながら進めさせてもらいました。 今後もいろいろな場面で活用させていただきます。