タイトル : Re: adAsyncExecuteについて 投稿日 : 2008/10/06(Mon) 15:53 投稿者 : 魔界の仮面弁士
> Set rs = cmd.Execute(, , adAsyncExecute) > ↓ > If RS.EOF then ← エラーとなる > exit sub > end if それらを一つのプロシージャに纏めてはいけません。イメージコードでいうと、 http://support.microsoft.com/default.aspx/kb/229799/ja のように記述するべきです。 たとえば、処理開始のプロシージャ――Sub Command1_Click()等――では、 単に Execute メソッドを adAsyncExecute 指定で呼ぶ、ただそれだけです。 この時点では、戻り値を変数 rs に拾っておく必要はありませんし、 rs.EOF を判断する必要もありません。Execute 後は直ちに Exit Sub するだけです。 その Execute 呼び出し後、しばらくすると ExecuteComplete イベントが発生するので、 rs.EOF などのデータの取得処理はそのイベント内で行います。このイベントには、 先ほどの Execute adAsyncExecute 指定で使われた Connection や、その結果となる Command や Recordset 等が引数として渡されてくるので、それらの引数を使って If pRecordset.EOF Then などとして利用する事ができます。 |