• ベストアンサー

【Access】区分別の採番方法続き

Accessでの事ですが、 以下のURLのベストアンサーのコマンドはフォームプロパティの 閉じるときに実行の所であっていますでしょうか。 https://okwave.jp/qa/q9592245.html よろしくお願い致します。

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

  • ベストアンサー
回答No.2

【テスト結果の報告】 以下のコードで無事に番号が付与されました。 Private Sub Form_Close() On Error GoTo Err_Form_Close   Dim isOK   As Boolean   Dim I    As Integer   Dim N    As Integer   Dim lngMAX  As Long   Dim strWhere As String     strWhere = " WHERE VAL(A管理番号 & '')=0 AND 区分=1"   N = DBLookup("SELECT COUNT(*) FROM テーブル2" & strWhere)   lngMAX = DBLookup("SELECT MAX(A管理番号) FROM テーブル2 WHERE 区分=1")   For I = 1 To N      isOK = CnnExecute("UPDATE テーブル2 SET A管理番号=" & lngMAX + I & strWhere & " AND ID=" & DBLookup("SELECT Top 1 ID FROM テーブル2" & strWhere))   Next I Exit_Form_Close:   Exit Sub Err_Form_Close:   MsgBox "管理番号の付与に失敗しました。(Form_Close)"   Resume Exit_Form_Close End Sub

tama8356
質問者

お礼

何から何までありがとうございます。 やってみます。

その他の回答 (1)

回答No.1

Q、フォームを閉じるときでも可。 A、テストはしていませんがOKだと思います。  が、念のために今夜中にテストしますので明日迄お待ちください。 確認、DLookup()⇒Access の Lookup()    CnnExecute()⇒Access の DoCmd.RunSQL への置き換えは出来ますよね。 PS、私だったら、フォーム《管理番号の付与》(仮題)を閉じる時にオープンして《XXX 件のレコードに連番を付与しました!》と表示します。ユーザーはそれを確認して同フォームを閉じる仕様にします。

関連するQ&A