質問: a If IsNull(Me.txt素材本数) Then MsgBox "素材本数を入力して下さい。" Else DoCmd.OpenReport "ラベル", acNormal, "", "" End If 選択.MoveFirst Do Until 選択.EOF 選択.Delete 選択.MoveNext Loop 選択.Close db.Close End Sub お忙しい中大変申し訳ございませんが、御教授していただけないでしょうか? どうぞよろしくお願い申し上げます。
回答: これ、コードの全容ですか? どこかで永久ループになってるんじゃないでしょうか。 なんとなく前半のDo Loopにおいて、変数aに【正しい数値となる値】が入ってないんじゃないかなと想像します。 そこはDo Loopじゃなく For c=0 to Abs(Val(Nz(a,0))) Next とでもすれば[txtラベル印刷枚数]に大概の値が入力されても切り抜けられるはずです。 あと、急に a , b , c の変数が出現してるので Option Explicit が宣言されていないと変数の取り扱いについてのトラブル度が格段に上がると思われるので、宣言することをお勧めします。 なお、後半のDo Loopは db.Execute "DELETE FROM [ラベル選択印刷位置]" の削除クエリ実行一行で完結されます。 Do Loopは永久ループの温床なので、うまい具合にシミュレートしないと泣きを見ることでしょう。