アプリ版:「スタンプのみでお礼する」機能のリリースについて

AccessのデータをExcelからSQL文を使って取り出しています。
複数のレコードセットを2次元配列に取り組むために
With My_RecSet
On Error Resume Next
.Open MySQL, My_DB
On Error GoTo 0
Application.Wait Now + TimeValue("00:00:01")
On Error GoTo RsCloseHdl
If .EOF And .BOF Then
'該当するレコードセットが一つもない場合
SQL_ext = -1  ←Function名
Exit Function
Else
SQL_ext = .GetRows
End If
としています。
私のパソコンの性能の関係かもしれませんが、ウエイトを入れないとたまに、レコードセットが1つ以上あるのにも関わらず.EOF And .BOF で引っ掛かります。1秒以下のウエイトの入れ方を教えて頂けませんか?
また、たまに、.Closeさせているにも関わらす、.Open MySQL, My_DBで、すでに開いているものに開けませんとエラーがでるので、やむなく、On Error Resume Nextとしています。限られた情報の提供となりますが、わかる範囲で教えて頂けないでしょうか?
よろしくお願いいたします。

A 回答 (2件)

> 1秒以下のウエイトの入れ方を教えて頂けませんか?



Sleep API が一番簡単かな。モジュールの先頭で以下のように宣言
しておき、ミリ秒(1秒=1000ミリ秒)単位でウェイトをかけられ
ます。

Declare Sub Sleep Lib "kernel32.dll" ( _
    ByVal dwMilliseconds As Long)

Sub Test()

  ' 処理~
  Sleep (500) ' 500ミリ秒
  ' 処理~

End Sub
    • good
    • 0
この回答へのお礼

Loop処理の中でウエイトを使っていたので、実際に処理する時間の3倍ぐらいがウエイトで占められていましたので大変助かります。
早速使わせて頂きます。
ありがとうございます。

お礼日時:2007/05/06 14:37

だめもとで・・


>レコードセットが1つ以上あるのにも関わらず.EOF And .BOF で引っ掛かります
Dcount で判断させてから、あれば配列に代入とか?

>Closeさせているにも関わらず
Closeの処理を通ってないとか、.Close : Set My_RecSet = Nothing としてみるとか

カーソルタイプをadOpenDynamic などに変えてみるとか
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
Accessは、初心者なのでいろいろと勉強していきたいと思います。
教えて頂いた点についても調べてみます。
本当にありがとうございました。

お礼日時:2007/05/06 14:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!