• 締切済み

Access VBAで分類別に連番を振る応用

Sub DAO_num()   '分類別連番付加 Dim db As DAO.Database Dim rs As DAO.Recordset Dim fld As DAO.Field Dim fldid As String Dim stSQL As String Dim i As Long '入力開始番号の値を格納 Dim i2 As String '前ゼロ表記の設定値を格納 Dim i3 As String '入力された変数をセーブ Dim recut As Long '連番付加処理カウンタ stSQL = "SELECT * FROM [Vba] ORDER BY [code] , [zip] , [ID]" Set db = CurrentDb() Set rs = db.OpenRecordset(stSQL, dbOpenDynaset) Set fld = rs.Fields("ren") '[ren]フィールドに連番を付加 rs.MoveFirst i = 0 i2 = "" fldid = rs!code i = InputBox("開始番号を入力して下さい。") i3 = i i2 = InputBox("前ゼロ表記の必要桁数を入力して下さい。") Do Until rs.EOF rs.Edit recut = recut + 1 If fldid <> rs!code Then '[code]が変わったら連番を振り直す i = i3 fldid = rs!code Else End If fld = Format(i, i2) rs.Update i = i + 1 rs.MoveNext Loop rs.Close db.Close MsgBox ("【処理終了】" & vbCrLf & "処理件数= " & recut & " 件") End Sub ---------------------------------------------------------------- 質問です。 i = InputBox("開始番号を入力して下さい。") ↑ここで値を入力した後、確認の為のInputBoxを出して値を入力し、最初入力した値と確認用に入力した値が同じなら処理を行う。不正の場合、メッセージを出して強制終了。 という風にカスタマイズしたいのですが、うまくいきません。 どなたかアドバイス宜しくお願い致します。

みんなの回答

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

'変数の宣言 Dim i As Long i = InputBox("開始番号を入力して下さい。") If MsgBox("開始番号は " & i & " で宜しいでしょうか?", vbYesNo) = vbNo Then MsgBox ("【いいえ】が選択されましたので、終了します") Exit Sub End If '~以下やりたい処理 再度入力する必要があるのかは不明ですが、確認させればいいのですよね?

swcjb010
質問者

お礼

大変助かりました。 機会があれば是非またアドバイス宜しくお願い致します。 ありがとうございました。