4章 カスタマイズ4-2テーブル

自動採番フィールドを作る


Soraテーブルのフィールドを自動採番するようにできます。
バージョン[V0407]以前では、以下のようにフォームごとに自動採番処理をコード(クラスモジュール)に追加します。バージョン[V0501]以降では、コードの追加修正が不要になりました。(自動採番管理)ただし、業務(Soraメニューのアイコン)ごとに自動採番フィールドを指定する必要があります。両方併用することもできます。


<自動採番フィールド作成手順>
[自動採番フィールド作成]
  1. サブシステム管理テーブルに自動採番フィールドを作ります。
    バージョン[V0401]以降は自動的に作成します。
    1. [Soraメニュー]から業務を選択
    2. リボンの[Soraツール]を表示
    3. [自動採番管理]を起動
      リボンの[Soraツール]の[Soraシステム管理]−[自動採番管理]をクリックします。USysCupテーブルが開きます。
    4. フィールドを作成
      USysCupテーブルを[デザイン]で開きます。自動採番させるフィールドと同名のフィールドを作成します。
    5. 値を設定
      USysCupテーブルを開き上記で追加したフィールドに採番開始番号1を設定します。
  2. Soraフォームのプロパティ[編集ロック]を”はい”に設定します。
    Soraフォームの自動採番フィールドのテキストボックスのプロパティの[編集ロック]を”はい”に設定します。
  3. Soraフォームのプロパティ[タブストップ]を”いいえ”に設定します。
    Soraフォームの自動採番フィールドのテキストボックスのプロパティの[タブストップ]を”いいえ”に設定します。
  4. Soraフォームのイベントプロシージャ[挿入前処理]を変更します。
    メニューバーの[表示]−[コード]でモジュールフォームを表示し、Form_BeforeInsert([挿入前処理])イベントプロシージャに下記の行を挿入します。
    apNextCount Me, "自動採番フィールド名", 1 '自動採番
    <例>
    Private Sub Form_BeforeInsert(Cancel As Integer)
        apFrmBeforeInsert Me
        apNextCount Me, "テスト番号", 1 '自動採番
    '    '[注意]自動採番項目のプロパティの[編集ロック]は’はい’に設定する
    End Sub
    
  5. Soraフォームのイベントプロシージャ[キークリック時]を変更します。
    <例>
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
        Select Case KeyCode
        Case vbKeyF1    'F1
            If Shift And acShiftMask Then    'Shiftキーが押されている
                apInnRcp Me, "テスト番号", 1  '複写(採番付)
                KeyCode = 0  '既存の処理をしない
                Exit Sub
            End If
        End Select
        apFrmKeyDown Me, KeyCode, Shift
    End Sub
    

<参照>
  1. 書籍「できるAccess97」
    41利用路線テーブルの項目を作るには(p122)
  2. 書籍「できるAccess97」
    59入力不要なテキストボックスをとばすには(p180)
  3. 書籍「Microsoft Access97 Visual Basic ステップバイステップ」
    Lessn2 VisualBasicでアプリケーションをカスタマイズする(p51)