こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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を出して値を入力し、最初入力した値と確認用に入力した値が同じなら処理を行う。不正の場合、メッセージを出して強制終了。
という風にカスタマイズしたいのですが、うまくいきません。
どなたかアドバイス宜しくお願い致します。

投稿日時 - 2009-04-27 14:38:38

QNo.4913044

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

'変数の宣言
Dim i As Long

i = InputBox("開始番号を入力して下さい。")

If MsgBox("開始番号は " & i & " で宜しいでしょうか?", vbYesNo) = vbNo Then
MsgBox ("【いいえ】が選択されましたので、終了します")
Exit Sub
End If

'~以下やりたい処理

再度入力する必要があるのかは不明ですが、確認させればいいのですよね?

投稿日時 - 2009-04-27 15:18:02

お礼

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

投稿日時 - 2009-04-28 09:19:20

あなたにオススメの質問