- ベストアンサー
【Access】区分別の採番方法続き
Accessでの事ですが、 以下のURLのベストアンサーのコマンドはフォームプロパティの 閉じるときに実行の所であっていますでしょうか。 https://okwave.jp/qa/q9592245.html よろしくお願い致します。
- みんなの回答 (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
その他の回答 (1)
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
Q、フォームを閉じるときでも可。 A、テストはしていませんがOKだと思います。 が、念のために今夜中にテストしますので明日迄お待ちください。 確認、DLookup()⇒Access の Lookup() CnnExecute()⇒Access の DoCmd.RunSQL への置き換えは出来ますよね。 PS、私だったら、フォーム《管理番号の付与》(仮題)を閉じる時にオープンして《XXX 件のレコードに連番を付与しました!》と表示します。ユーザーはそれを確認して同フォームを閉じる仕様にします。
お礼
何から何までありがとうございます。 やってみます。